我正在将我的应用程序转换为使用 NDB。我以前也有过这样的事情:
@db.ComputedProperty
def someComputedProperty(self, indexed=False):
if not self.someCondition:
return []
src = self.someReferenceProperty
list = src.list1 + src.list2 + src.list3 + src.list4 \
+ [src.str1, src.str2]
return map(lambda x:'' if not x else x.lower(), list)
如您所见,我生成列表的方法有点复杂,我更喜欢保持这种方式。但是当我开始转换为 NDB 时,我只是替换@db.ComputedProperty
为,@model.ComputedProperty
但后来我收到了这个错误:
NotImplementedError: Property someComputedProperty does not support <type 'list'> types.
我可以model.py
在 ext.ndb 中看到,它ComputedProperty
继承自GenericProperty
where_db_set_value
有几个 if/else 语句根据其类型处理值,除了没有处理lists
目前它通过第一个条件并在我返回一个空列表时给出该错误。
有没有办法解决这个问题并避免错误?