Привет, я ранее задал вопрос об использовании ключей, на который был дан отличный ответ.
Однако теперь мне интересно, если создание и использование ключей для моих моделей - это путь, мне сказалимой парень из iPhone App, который нам нужен INT для хранения в базе данных.Я получил свой код Python, работающий с ключами, и теперь, возможно, придется вернуться.
Мне бы очень хотелось услышать ваше мнение по поводу создания ключевых имен и автоматической генерации идентификаторов, которые мое приложение iPhone может использовать без каких-либо значительных изменений.
Вот мои модели:
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)
И как я справлялся с ними, используя ключи (ниже).Каждый раз, когда Пользователь регистрируется в записи BookUser, создается, если она еще не существует.Мне нужно отправить все эти данные на iPhone с идентификаторами для хранения в базе данных.Ниже выглядит довольно солидно, практический человек, который думает, что я должен сказать разработчику iPhone «смириться»:)
Или может быть решено следующее лучше?
### Get the Users Details
user_id = 1
user = User.get_by_key_name(user_id)
user_key = user.key().name()
### Get the latest active Book
book = Book.all().filter('is_active =', True).get()
book_key = book.key().name()
### Get latest Book for this User
bookuser_key_name = "%s:%s" % (str(book_key), str(user_key))
bookuser = BookUser.get_or_insert(bookuser_key_name)
bookuser.card = card
bookuser.user = user
bookuser.put()