2010-10-30 21 views
0

這是模型:谷歌應用程序引擎抓取()和打印

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同樣的事情不起作用。我試圖得到mylistT = type(mylist)這兩種類型都沒有用。

回答

1

如果您使用fetch(1),您將得到1個元素的列表(如果沒有要獲取的實體,則爲無)。

一般來說,打印所有各實體的元素的實體的列表,你可以這樣做:

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

雖然大多數人也只是用一個模板來顯示實體的數據某種方式。

+0

謝謝,我不要了解第一行。但請參閱上面的修改。 – Zeynel 2010-10-30 23:39:57

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 %} 
+0

謝謝。至少現在我沒有收到錯誤消息,但是我得到了「無」。我不明白爲什麼我必須使用'i.author'?我以爲我把's'的內容存放在'L'和'mylist'中。然後,如果我獲取這些列表中的一個;他們應該包含's'的內容。但是這沒有發生。有什麼建議麼? – Zeynel 2010-10-31 01:16:22

+0

你知道如何獲得與Mako模板相同的效果http://stackoverflow.com/questions/4061673/printing-lists-with-mako-template-django-join-tag – Zeynel 2010-10-31 03:08:44