2015-06-02 30 views
0

我有這樣的代碼:如何獲得我們的意見的詳細列表

def comment_details(request, comment_id): 
    comments = Comment.objects.all().filter(id=comment_id) 
    context = { 
     'comments': comments, 
    } 
    return render(request, 'theme/comment_detail.html', context) 

它應該得到評論的id,並在單獨.html寫這篇評論。如果我從預期參數中刪除comment_id,並從filter(id=comment_id)中刪除並寫入id=24,它將顯示24th評論。

請詢問需要什麼,對HTML如下:

{% block container %} 
{% for comment in comments %} 
<div class="container"> 
    <p>{{ comment.comment}}</p> 
    <p>By: {{ comment.comment_by }}</p> 
    <p>Published: {{ comment.comment_datetime }}</p> 

{% endfor %} 
{% endblock %} 

及按鈕應使其打印在這裏:

<td><a href="{% url 'comment_details' %}" details-id="{{comment.id}}"> More details</a></td> 
+0

嘗試將其轉換爲int,然後將其傳遞給過濾器參數:'Comment.objects.all()。filter(id = int(comment_id))'如果您說這適用於您'Comment.objects.all ).filter(id = 24)' –

+1

我不知道我明白你想做什麼。你需要一個Comment(爲什麼filter?comment = Comment.objects.get(pk = comment_id))的實例,然後循環遍歷單個實例。如果問題仍然存在,我可能會漏掉一些東西,請多解釋一下。 –

+0

我有一個包含評論的頁面。對於每條評論,我都有一個鏈接,該鏈接應該會導致該單一評論的詳細信息頁面。如果我輸入一個像「(Comment.objects.all()。filter(id = 24)」這樣的隨機id,那麼所有的鏈接都是關於評論24.所以我想如果我能得到「comment_id」,我可以放它在「(Comment.objects.all().filter(id = comment_id)」中,但我不明白我是怎麼做到的,就像我不知道評論如何得到id = 2等等 – random

回答

0

第一件事,如果你正在通過'id'查找記錄,這意味着它將成爲單個記錄。所以你的查詢應該是,

Comment.objects.get(id=comment_id) 

你應該驗證給定的id的記錄是否存在。

如果您正在查找評論列表,那麼可能需要考慮形成您的查詢。

然後,您可以簡單地返回queryset對象並將其循環到模板中。

截至目前,您的一段代碼是錯誤的。

+0

我有一個頁面的評論。每個評論我有一個鏈接應該導致一個詳細頁面的單一評論。如果我把一個隨機的ID像「(評論.objects.all()。filter(id = 24)「所有的鏈接都是關於註釋24.所以我想如果我能得到」comment_id「我可以把它放在」(Comment.objects.all()。過濾器(id = comment_id)「,但我不知道如何做到這一點,就像我不知道評論如何得到id = 2等等。 – random

相關問題