我正在将应用程序从 Datastore 转换为 ndb,并且在 xml 导入例程中遇到问题。问题是我无法以编程方式确定 ndb.model 类的属性是否是多值属性。
我怀疑这是由于缺乏基本的 Python 技能,因为到目前为止我编写的代码显示该值是“可见的”。因此我无法抓住它。请帮忙。
from google.appengine.ext import ndb
class House(ndb.Model):
name = ndb.StringProperty()
rooms = ndb.StringProperty(repeated=True)
print 'Properties:'
for p in House._properties:
print getattr(House,p)
print '\nRepeated:'
for p in House._properties:
print getattr(getattr(House,p),'repeated',None)
结果如下:
Properties:
StringProperty('rooms', repeated=True)
StringProperty('name')
Repeated:
None
None
实际上,下划线前缀的选项are官方API。这是一个没有记录的错误,我会修复它。我在这里解释了一些:http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=187
特别是,要获取模型的属性,您应该使用 House._properties,而不是 Nick 提出的代码。 (实际上,__dict__
在未来的 NDB 版本中可能会被插槽取代。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)