python-使用ndb多次引用单一Google数据存储种类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-使用ndb多次引用单一Google数据存储种类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1233字,纯文字阅读大概需要2分钟。
内容图文
我有以下2个NDB模型
from endpoints_proto_datastore.ndb import EndpointsModel
class Foo(EndpointsModel):
attr1 = ndb.StringProperty(required=True)
class Bar(EndpointsModel):
attr1 = ndb.KeyProperty('Foo', required=True)
attr2 = ndb.KeyProperty('Foo', required=True)
如您所见,Bar有几个对Foo的引用.
现在,当我为每个引用分配值时,第二个替换第一个,并且仅将其存储到数据库中,最有趣的部分是,当使用dev_appserver数据存储查看器查找时,该属性位于名称“ Foo”下,而不是第二个属性的名称替换了第一个属性.
我插入后,这就是我所期望的
Bar(key=Key('Bar', xxxxxxxxxxxxxxxx), attr1=Key('Foo', xxxxxxxxxxxxxxxx), attr2=Key('Foo', xxxxxxxxxxxxxxxx)
但我只会
Bar(key=Key('Bar', xxxxxxxxxxxxxxxxxx), attr2=Key('Foo', xxxxxxxxxxxxxxxx))
在数据存储查看器中
Entity Kind Bar
Entity Key xxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ID xxxxxxxxxxxxxxxx
Foo (Key) xxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Foo: id=xxxxxxxxxxxxxxxx
解决方法:
KeyProperty的第一个参数是属性的名称(如果您要使名称与类属性不同),因此两次使用相同的名称将产生您所看到的行为.
您应该使用命名参数来指定类型:
ndb.KeyProperty(kind='Foo', required=True)
内容总结
以上是互联网集市为您收集整理的python-使用ndb多次引用单一Google数据存储种类全部内容,希望文章能够帮你解决python-使用ndb多次引用单一Google数据存储种类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。