NDB是否仍然使用default = None或属性设置为None进行索引?

时间:2014-02-13 23:35:37

标签: google-app-engine python-2.7

我希望能够像MyModel.query(MyModel.some_property == None)一样运行查询并获得结果。我知道如果我没有在属性中放置default=<some default>,我将无法查询它,但如果我设置default=None它会将其编入索引吗?

同样,将值设置为None会导致属性在ndb.Model中编入索引吗?如果将some_keyword_arg=None传递给构造函数会怎么样?

我知道做类似的事情:ndb.StringProperty(default='')意味着你可以查询它,只是不清楚使用None的语义。

1 个答案:

答案 0 :(得分:6)

将属性显式设置为None定义一个值,并且yes默认为work,属性将被索引。假设None是特定属性类型的有效值。

正如您所指出的那样,会出现一些问题,通常您使用None作为sentinal值,那么如何判断没有提供的值和显式的None?