2017-04-21 1035 views
0

我正在使用Python 3並試圖將QuerySet轉換爲可讀的文本。我有這樣一行:Django:如何將QuerySet轉換爲字符串

top_post = Post.objects.filter(category='1')[:1] 

,打印這樣的:

<QuerySet [<Post: Test Post 1>]> 

是什麼讓我抓我的頭是一個類似的查詢集成功時,通過模板顯示的轉換:

latest = Post.objects.order_by('-published_date')[:5] 

「最新」在模板中使用for ...循環:

{% for latest_posts in latest %} 
<h1>{{ latest_posts }}</h1> 

雖然 「top_post」 只顯示一片空白:

<h1>{{ top_post }}</h1> 

任何人都看到發生了什麼缺失?

+0

您的top_post是一個查詢集,您需要獲得一個單獨的對象,如'top_post = top_post [0]' –

回答

1

{{top_post}}是一個查詢集(切片查詢集也產生一個查詢集),所以它應該顯示。當你遍歷查詢集時,就像你在latest上做的那樣,你在裏面顯示對象。

{{top_post.0}}會給你的對象top_post包含。

或者您可以使用

top_post = Post.objects.filter(category='1').first() 

直接獲取的對象。

+0

感謝您的有用答案。現在讓我繼續留下剩餘的發展。 –