我通过 HTTP 请求获取一个或多个密钥 ID(urlsafe 密钥)的 json 数组。现在我想将这个 Id/Ids 的键/键存储在我定义的UserListProperty中。它扩展了我定义的UserProperty ,它扩展了ndb.KeyProperty。
因此,如果我只用一个键使用UserProperty .. 一切都好。密钥通常存储在数据存储中并作为参考。但是当我使用UserListProperty(即使只有一个键)时,数据存储将其存储为:[datastore_types.Key.from_path(u'Example', 20L, u'User', 21L, _app=example~db')]
我在哪里存储这个密钥?它位于另一个具有 UserListProperty 的模型实例 List 的属性(读取器)中。
好的,所以我认为我必须在 UserListProperty 定义或我写入此属性的方式中做错事。我想同时显示:
class UserProperty(ndb.KeyProperty):
def __init__(self, *args, **kwargs):
super(UserProperty, self).__init__(*args, **kwargs)
self._visible = False
self._verbose_name = 'User key'
class UserListProperty(UserProperty):
def __init__(self, *args, **kwargs):
super(UserListProperty, self).__init__(*args, **kwargs)
self._repeated = True
self._visible = False
self._verbose_name = 'List containing user keys.'
for viewer in viewerlist:
key = Key(urlsafe=viewer)
if not key in list.reader:
list.reader.append(key)
希望有人可以帮助我.. 我读了一些关于 db.ReferenceProperty 并试图把它放在这里(而不是 KeyProperty)。但它不起作用。也许我做错了什么。或者它只是没有帮助。