Google App Engine获取()并打印

时间:2010-10-30 22:20:43

标签: google-app-engine google-cloud-datastore

这是模型:

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>]

这样的东西

谢谢!

修改

@Wooble:我也使用模板。我不明白的是;我打印列表L,如下所示:

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

这很有效。但mylist同样的事情是行不通的。我尝试将mylist的{​​{1}}类型与T = type(mylist)无效。

2 个答案:

答案 0 :(得分:1)

如果您使用fetch(1),您将获得1个元素的列表(如果没有要获取的实体,则为None)。

通常,要在实体列表中打印每个实体的所有元素,您可以执行以下操作:

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

虽然大多数人只是使用模板以某种方式显示实体的数据。

答案 1 :(得分:0)

rep.all().fetch(1)的结果是一个对象。你需要像这样迭代:

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

如果要打印i.replist(列表),可以使用Django的模板函数连接打印,例如:

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