如何在不使用数据存储区获取对象的情况下获取引用属性的键字符串?
我有 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.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 对象。你知道我该怎么做吗?