Как получить ключевую строку ссылочного свойства без использования хранилища данных для получения объекта?
У меня есть 2 объекта хранилища данных, связанные db.ReferenceProperty:
class Track(db.Model):
name = db.StringProperty()
class Video(db.Model):
name = db.StringProperty()
track = db.ReferenceProperty(Track, collection_name='video-track')
Это упрощает получение связанной дорожки из данного видео:
video = Video.get(a_video_key_string)
track = video.track
И я могу сохранить их в memcache для быстрого доступа позже:
memcache.add(str(video.key()), video)
memcache.add(str(track.key()), track)
Теперь я могу получить видео или трек из memcache:
video = memcache.get(a_video_key_string)
track = memcache.get(str(video.track.key()))
Однако это генерирует запрос хранилища данных для дорожки, хотя я этого не хочу. В частности, запрос video.track автоматически вызывает хранилище данных для получения объекта Track, а затем вызывает функцию key() для определения строки ключа.
Я хочу получить значение ключа из связанного ReferenceProperty без фактического создания экземпляра объекта Track. Вы знаете, как я могу это сделать?
KeyProperty
вместоReferenceProperty
. Таким образом, вы получаете только ключ сущности. Если вам нужно загрузить сущность, вы получаете ее напрямую по ключу. - person Thanos Makris   schedule 30.12.2012