2010-10-30 10 views
0

C'est le modèle:chercher Google App Engine() et imprimer

class Rep(db.Model): 
    author = db.UserProperty() 
    replist = db.ListProperty(str) 
    unique = db.ListProperty(str) 
    date = db.DateTimeProperty(auto_now_add=True) 

Je vous écris replist à datastore:

 L = [] 
     rep = Rep() 
     s = self.request.get('sentence') 
     L.append(s) 

     rep.replist = L 
     rep.put() 

et récupérer

mylist = rep.all().fetch(1) 

Je suppose que mylist est une liste. Comment imprimer ses éléments? Quand je l'essaye, je me retrouve avec l'objet; Quelque chose comme [<__main__.Rep object at 0x04593C30>]

Merci!

EDIT

@Wooble: J'utilise des modèles aussi. Ce que je ne comprends pas c'est ça; J'imprime la liste L comme ceci:

% for i in range(len(L)): 
<tr> 
    <td>${L[i]}</td> 
</tr> 
% endfor 

Et cela fonctionne. Mais la même chose pour mylist ne fonctionne pas. Et j'ai essayé d'obtenir le type de mylist avec T = type(mylist) qui ne fonctionnait pas non plus.

Répondre

1

Si vous utilisez fetch(1), vous obtiendrez une liste de 1 élément (ou None, s'il n'y a aucune entité à récupérer).

En général, pour imprimer tous les éléments de chaque entité dans une liste d'entités, vous pouvez faire quelque chose comme:

props = Rep.properties().keys() 
for myentity in mylist: 
    for prop in props: 
     print "%s: %s" % (prop, getattr(myentity, prop)) 

Bien que la plupart des gens simplement utiliser un modèle pour afficher les données des entités en d'une certaine manière.

+0

Merci, je ne comprendre la première ligne. Mais s'il vous plaît voir la modification ci-dessus. – Zeynel

0

Le résultat de rep.all().fetch(1) est un objet. Vous devrez itérer comme ceci:

{% for i in mylist %} 
<tr> 
    <td>{{i.author }}</td> 
    ... 
</tr> 
{% endfor %} 

Si vous souhaitez imprimer i.replist (liste), vous pouvez l'imprimer en utilisant la fonction de modèle de Django se joindre par exemple:

{% for i in mylist %} 
    <tr> 
    <td>{{i.replist|join:"</td><td>" }}</td> 
    </tr> 
{% endfor %} 
+0

Merci. Au moins maintenant, je ne reçois pas de message d'erreur mais j'obtiens 'None'. Et je ne comprends pas pourquoi je dois utiliser 'i.author'? Je pensais avoir stocké le contenu de la chaîne 's' dans' L' et 'mylist'. Ensuite, si je vais chercher une de ces listes; ils devraient contenir le contenu de 's'. Mais ce n'est pas le cas. Aucune suggestion? – Zeynel

+0

savez-vous comment obtenir le même effet avec des modèles Mako http://stackoverflow.com/questions/4061673/printing-lists-with-mako-template-django-join-tag – Zeynel