Движок приложения Google: проблема с ссылочными ключами автозагрузки! - PullRequest
1 голос
/ 05 ноября 2010

У меня есть образ модели с именем «uploaded_by_user», который является свойством db.ReferenceProperty для модели User. Когда я запрашиваю изображение в свойстве «Загружено пользователем», у меня уже есть пользовательское значение в качестве модели. Я не хочу этого, я просто хочу ключ. Я не хочу, чтобы этот дополнительный запрос загружал пользователя. Это возможно?

EDIT1:

массив изображений затем отправляется через PYAMF для сгибания. Таким образом, элементы должны содержать все необходимые данные.

EDIT2

Ошибка:

    Traceback (most recent call last):
    ,  File "D:\Totty\webDevelopment\TottysWorld\src\pyamf\remoting\amf0.py", line 108, in __call__
        *args, **kwargs)
    ,  File "D:\Totty\webDevelopment\TottysWorld\src\pyamf\remoting\amf0.py", line 61, in _getBody
        **kwargs)
    ,  File "D:\Totty\webDevelopment\TottysWorld\src\pyamf\remoting\gateway\__init__.py", line 510, in callServiceRequest
        return service_request(*args)
    ,  File "D:\Totty\webDevelopment\TottysWorld\src\pyamf\remoting\gateway\__init__.py", line 233, in __call__
        return self.service(self.method, args)
    ,  File "D:\Totty\webDevelopment\TottysWorld\src\pyamf\remoting\gateway\__init__.py", line 133, in __call__
        return func(*params)
    ,  File "D:\Totty\webDevelopment\TottysWorld\src\app\services\lists\get_contents.py", line 39, in get_contents
        item.uploaded_by_user = str(Image.uploaded_by_user.get_value_for_datastore(item))
    ,  File "C:\GAE\google\appengine\ext\db\__init__.py", line 3216, in __set__
        value = self.validate(value)
    ,  File "C:\GAE\google\appengine\ext\db\__init__.py", line 3246, in validate
        if value is not None and not value.has_key():
    ,AttributeError: 'str' object has no attribute 'has_key'

Нет больше этой ошибки! вместо сохранения поверх item.uploaded_by_user я сохраняю на item.uploaded_by_user_key. Но Item.uploaded_by_user по-прежнему загружает модель User ..

item.uploaded_by_user_key = str(Image.uploaded_by_user.get_value_for_datastore(item))

В данном случае это мой образ. Поскольку изображение присуще элементу, я называю его элементом.

1 Ответ

0 голосов
/ 05 ноября 2010
class Image(db.Model):
    uploaded_by_user= db.ReferenceProperty(User)

class User(db.Model):
    ...

Вы можете сделать:

image = db.get(image_key)
user_id = Image.uploaded_by_user.get_value_for_datastore(image).id()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...