找出模型的属性是否是必需的'

时间:2014-04-19 07:45:30

标签: python google-app-engine models app-engine-ndb

我正在尝试为谷歌应用引擎写一个我自己的宁静服务。我正在动态获取表单数据并保存模型。要获取属性列表,我正在做

Contact.__properties
{'name': StringProperty('name', required=True), 'email': StringProperty('email', required=True)}

我可以这样做来找到属性的类型

(Pdb) type(Contact._properties['name']) is ndb.StringProperty
True

但我怎样才能找到是否需要=真或假

Contact._properties的输出类型是什么,我该如何解密它。

1 个答案:

答案 0 :(得分:3)

虽然poorly documented 是NDB模型的内省API;只需使用带有下划线前缀的配置选项的名称:

Contact._properties['name']._required

required选项的值。

下划线并不表示此处的“隐私”,但用于避免与模型本身的名称发生冲突(例如nameStructuredProperty引用另一个具有required属性的模型否则您将无法访问required 选项)。