Google App Engine получает () и печатает - PullRequest
0 голосов
/ 31 октября 2010

Это модель:

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

Я пишу replist в хранилище данных:

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

        rep.replist = L
        rep.put()

и получить

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

Я предполагаю, что mylist это список. Как мне распечатать его элементы? Когда я пытаюсь это сделать, я сталкиваюсь с объектом; что-то вроде [<__main__.Rep object at 0x04593C30>]

Спасибо!

EDIT

@ Wooble: я тоже использую шаблоны. Что я не понимаю, так это Я печатаю список L так:

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

И это работает. Но то же самое для mylist не работает. И я попытался получить тип mylist с T = type(mylist), который тоже не работал.

Ответы [ 2 ]

1 голос
/ 31 октября 2010

Если вы используете fetch(1), вы получите список из 1 элемента (или None, если нет объектов для извлечения).

Как правило, чтобы распечатать все элементы каждого объекта в списке объектов, вы можете сделать что-то вроде:

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

Хотя большинство людей просто используют шаблон для отображенияданные сущностей в некотором роде.

0 голосов
/ 31 октября 2010

Результатом rep.all().fetch(1) является объект. Вам нужно будет повторить, как это:

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

Если вы хотите напечатать i.replist (список), вы можете распечатать его, используя функцию шаблона Django join, например:

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