我正在使用App Engine,SDK 1.6.3和Python 2.7。
我创建了一个这样的模型:
class MyModel(db.Model):
name = db.StringProperty()
website = db.StringProperty()
我可以迭代并查看除Key id之外的所有内容。例如,在交互式shell中我可以运行:
from models import *
list = MyModel.all()
for p in list:
print(p.name)
并打印每个实体的名称。但是当我运行时:
from models import *
list = MyModel.all()
for p in list:
print(p.key.id) [or p.key.name or p.key.app]
我得到一个AttributeError:
Traceback (most recent call last):
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/admin/__init__.py", line 317, in post
exec(compiled_code, globals())
File "<string>", line 4, in <module>
AttributeError: 'function' object has no attribute 'id'
任何人都可以帮助我吗?
答案 0 :(得分:7)
答案 1 :(得分:1)
key()
is a method和id()
is also a method。
所以你需要这样做:
from models import MyModel
lst = MyModel.all()
for p in lst:
print(p.key().id())
其他说明:
from [something] import *
。这可能会导致难以调试的命名空间问题。list
。