Получить или создать соответствующий ключ и пользователя (Python - App Engine) - PullRequest
1 голос
/ 27 января 2011

Попытка сопоставить запись и пользователя с помощью 'get_or_insert' в Python в Google App Engine.

Используя приведенные ниже модели, я хочу проверить, есть ли у пользователя запись для уже созданной книги (перечисленной в BookUser), если у него есть запись в BookUser, получить подробную информацию об этом. Если они не создают это с данными XX и связывают это с Книгой и Пользователем.

class User(db.Model):
   id = db.StringProperty()
   name = db.StringProperty()
   image = db.BlobProperty(default=None)

class Book(db.Model):
   image = db.BlobProperty()
   date_added = db.DateTimeProperty(auto_now_add=True)
   is_active = db.BooleanProperty(default=True)

class BookUser(db.Model):
   book = db.ReferenceProperty(Book)
   user = db.ReferenceProperty(User)
   is_active = db.BooleanProperty(default=True)

Я все еще оборачиваюсь вокруг App Engine, ключей и тому подобного. Любая помощь была бы великолепна, цени ее.

д

1 Ответ

1 голос
/ 27 января 2011

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

bookuser_key_name = "%s:%s" % (str(book_key.id_or_name()), str(user_key.id_or_name()))
bookuser = BookUser.get_or_insert(bookuser_key_name)
# set your values...
bookuser.put()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...