Я хотел бы отметить, что я новичок в Python, а с ним и в Python на платформе GAE. Я обнаружил эту очень странную ошибку / ошибку, когда я пытаюсь получить объект, используя его идентификатор ключа ...
Вот что я делаю,
Я запрашиваю модель сущностей хранилища данных UserDetails для ключа, соответствующего имени пользователя, полученному из пользовательского интерфейса.
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)
, я получаю ошибку AttributeError: 'list' object has no attribute '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'