我通过HTTP请求得到一个包含一个或多个密钥id(urlsafe Key)的json数组。现在我想将这个Id/Id的key/keys存储在我定义的UserListProperty中。它将我定义的用户属性扩展到ndb.KeyProperty属性。在
所以如果我只使用一个键就可以使用用户属性。。一切都好。密钥通常存储在数据存储中并作为引用。但是当我使用UserListProperty时(即使只有一个键),数据存储将其存储为:[datastore_types.Key.from_path(u'Example', 20L, u'User', 21L, _app=example~db')]
我把钥匙放哪儿?它位于另一个具有UserListProperty的模型实例列表的属性(读取器)中。在
好的,所以我认为我必须在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.'
希望有人能帮我。。我读到一些关于数据库参考属性试着把它放在这里(而不是KeyProperty)。但它不起作用。也许我做错了什么。或者根本没用。在
你的代码可能真的能正常工作。你看到的绳子:
看起来像一个包含一个键对象的列表的repr(),这正是您想要的。在
也许你设置其余代码的方式有问题(例如,定义reader属性的model类)?在
要访问由重复的KeyProperty引用的实体(这是您正在做的),您必须使用一个循环,例如
^{pr2}$注:我不会设置self.\u像您一样在您的初始化中重复;我会将它传递给超级调用,如下所示:
什么是可见的?如果您不需要它,也许不用定义KeyProperty的琐碎子类,只需使用以下命令:
关于ReferenceProperty,它来自旧的db模块,最好忘记它。在
相关问题 更多 >
编程相关推荐