2011-10-11 44 views
2

假设一个NDB(版本0.7 & 0.8)与主要模型可以是无:如何查询Model.KeyProperty ==没有在数据存储加(NDB)

class Test(model.Model): 
    k = model.KeyProperty() 
    value = model.IntegerProperty() 

count = Test.query(Test.k == None).count() # error 
#count = Test.query(Test.k != None).count() # error also 

只有过滤与无钥匙抛出错误。

File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/_webapp25.py", line 701, in __call__ 
    handler.get(*groups) 
File "/Users/reiot/Documents/Works/ndbtest/main.py", line 91, in get 
    count = Test.query(Test.k == None).count() # error 
File "/Users/reiot/Documents/Works/ndbtest/ndb/model.py", line 500, in __eq__ 
    return self._comparison('=', value) 
File "/Users/reiot/Documents/Works/ndbtest/ndb/model.py", line 491, in _comparison 
    return FilterNode(self._name, op, self._datastore_type(value)) 
File "/Users/reiot/Documents/Works/ndbtest/ndb/model.py", line 1138, in _datastore_type 
    return datastore_types.Key(value.urlsafe()) 
AttributeError: 'NoneType' object has no attribute 'urlsafe' 

如何使用无查询KeyProperty?

回答

1

这看起来像NDB中的一个错误。你可以在问题追踪器上提交一个吗?

+0

好的。我提交了http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=77 :) –