Abh*_*Das 3 python database google-app-engine gql google-cloud-datastore
我是使用Google App Engine开发Web应用程序的新手.
我想检查数据存储区中为list属性(db.ListProperty)设置空值的实体.但是,当我尝试检查任何针对entity.listGAE的内容时都会出现错误:
'super' object has no attribute 'list'.
在一些搜索之后,我在这个SO问题中看到,为GAE数据存储区实体的列表属性设置空值等同于根本不设置该属性.这解释了我的错误.
所以我需要匹配数据存储区中根本没有任何list属性集的实体.查看GAE文档,我仍然没有找到任何允许我检查实体是否具有特定属性集的方法.
注意:我不必使用GQL执行此操作.我可以用GQL检索所有实体,然后用python检查.但是GQL解决方案也没问题.
dra*_*onx 14
我可以想到三种解决方法.
您可能遇到这种情况,因为最初您的模型没有"list"属性,并且您稍后添加了一个属性,因此您可能在数据存储区中没有"list"属性的旧实例.您可以编写一个遍历数据存储区的mapreduce函数,并确保所有实体都具有"list"元素.
否则,您可以使用python hasattr函数
if hasattr(entity, 'list'):
a = entity.list[0] # or whatever operation you want
Run Code Online (Sandbox Code Playgroud)
第三,您可以使用异常处理程序来捕获错误情况.
| 归档时间: |
|
| 查看次数: |
2783 次 |
| 最近记录: |