我想提前说我是python的新手,并且是python平台的GAE。我一直在寻找这个非常奇怪的错误/错误,当我试图让一个实体使用它的密钥ID ... 这是我做的,谷歌应用程序引擎中的奇怪错误
我正在查询数据存储实体模型UserDetails的用户对应的密钥名称从UI中检索。
src_key_str = db.GqlQuery('SELECT __key__ FROM UserDetails WHERE user_name = :uname', uname = src_username).fetch(1)
for itr1 in src_key_str:
src_key = itr1.id_or_name()
然后使用src_key
获得我试图获得相应的实体相同。
accounts = UserDetails.get_by_id(src_key)
现在在这里,当我尝试使用self.response.out.write(accounts.user_name)
访问帐户的属性,我得到一个错误。考虑到帐户实际上是一个列表,我尝试使用accounts[0]
获得第一个元素,现在我得到list out of bound error
。
当我尝试硬编码src_key值时,它工作得很好,但是,当我将值传递给同一个方法时,我得到这些错误。我不明白为什么GAE在生产环境和开发环境中表现如此。我是否缺少关于此行为的一些信息?
编辑:将堆栈跟踪,
Traceback (most recent call last):
File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 507, in __call__
handler.get(*groups)
File "/base/data/home/apps/bulkloader160by2/1-5.337673425692960489/new_main.py", line 93, in get
self.response.out.write(accounts.user_name)
AttributeError: 'list' object has no attribute 'user_name'
我们需要完整的堆栈跟踪。您展示的例外情况不会发生在您粘贴的代码中。 – 2009-11-11 10:16:08
按要求添加堆栈跟踪。 – Arun 2009-11-11 10:20:47