2010-06-01 62 views
0

我有一個迷你博客應用程序和回覆系統。我想列出所有迷你博客條目和他們的回覆,如果有的話。 我在views.pydjango博客 - post-reply系統顯示回覆

def profile_view(request, id): 
     u = UserProfile.objects.get(pk=id) 
     paginator = New.objects.filter(created_by = request.user) 
     replies = Reply.objects.filter(reply_to = paginator) 
    return render_to_response('profile/publicProfile.html', { 
     'object_list': u, 
     'list':paginator, 
     'replies':replies 
     }, 
     context_instance=RequestContext(request)) 

,並在模板:

<h3>Recent Entries:</h3> 
    {% for object in list %} 
<li>{{ object.post }} <br /> 
{% for object in replies %} 
{{ object.reply }} <br /> 
{% endfor %} 

提到:REPLY_TO是一個ForeignKey新建,新的是 '迷你博客' 的名稱表

但它只顯示每個博客條目的所有回覆,而不是每個條目的回覆,如果有一個

謝謝

回答

3

首先,請考慮給你的變量明智的名字。 New,listpaginator根本不能描述這些對象實際是什麼 - 並且在某些情況下,它們是積極誤導的,與object_list一樣,除了單個項目外,它們不是一個列表。其次,代碼完全按照您的要求進行(忽略了您發佈的模板代碼實際上無效的事實,因爲您沒有正確嵌套循環並重新定義變量object)。您將獲得所有條目,然後全部回覆,然後顯示每個條目下的所有回覆列表。

相反,您顯然希望獲得附加到每個條目的答覆。所以刪除線指Reply在視圖中,並在模板利用reverse relationship的:

{% for object in list %} 
    {{ object.post }} 
    {% for reply in object.reply_set.all %} 
    {{ reply }} 
    {% endfor %} 
{% endfor %} 

最後,由於人在答覆中建議你的其他問題,你將得到更好的服務通過閱讀Django的教程和Django書籍,均可免費在線獲取。

+0

是的。你是完全正確的。 謝謝! – dana 2010-06-01 13:31:04