Je voudrais mentionner d'avance que je suis novice en python et avec cela à la plate-forme python de GAE. J'ai trouvé cette erreur/faute très étrange quand j'essaye d'obtenir une entité en utilisant son ID de clé ... Voici ce que je fais,Etrange erreur dans le moteur de l'application google
J'interroge le modèle d'entité de banque de données UserDetails pour la clé correspondant à l'utilisateur nom récupéré de l'interface utilisateur.
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()
Ensuite, en utilisant le src_key
obtenu je tente d'obtenir l'entité correspondant à la même.
accounts = UserDetails.get_by_id(src_key)
Maintenant ici lorsque je tente d'accéder aux propriétés des comptes à l'aide self.response.out.write(accounts.user_name)
, je reçois une erreur AttributeError: 'list' object has no attribute 'user_name'
. Pensant que les comptes étaient en fait une liste, j'ai essayé d'obtenir le premier élément en utilisant accounts[0]
Maintenant, je reçois list out of bound error
.
Lorsque j'essaye de coder en dur la valeur de src_key, cela fonctionne très bien mais, quand je passe la valeur à la même méthode, j'obtiens ces erreurs. Je ne comprends pas pourquoi GAE se comporte ainsi dans l'environnement de production et l'environnement de développement. Ai-je manqué quelques informations sur ce comportement?
EDIT: l'ajout de trace de la pile,
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'
Nous avons besoin de la trace complète de la pile. L'exception que vous affichez ne peut pas apparaître dans le code que vous avez collé. –
Ajout de la trace de pile comme demandé. – Arun