Google App Engine fetch() and print

泪湿孤枕 提交于 2020-01-07 04:28:28

问题


This is the model:

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

I am writing replist to datastore:

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

        rep.replist = L
        rep.put()

and retrieve

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

I assume that mylist is a list. How do I print its elements? When I try it I end up with the object; something like [<__main__.Rep object at 0x04593C30>]

Thanks!

EDIT

@Wooble: I use templates too. What I don't understand is that; I print the list L like this:

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

And this works. But the same thing for mylist does not work. And I tried to get the type of mylist with T = type(mylist) that did not work either.


回答1:


If you use fetch(1), you'll get a list of 1 element (or None, if there are no entities to fetch).

Generally, to print all of the elements of each entity in a list of entities, you can do something like:

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

Although most people would just be using a template to display the entities' data in some way.




回答2:


The result of rep.all().fetch(1) is an object. You will need to iterate like this:

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

If you want to print i.replist (list), you can print it using Django's template function join eg:

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


来源:https://stackoverflow.com/questions/4060924/google-app-engine-fetch-and-print

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!