簡體   English   中英

如何為每個項目制作單獨的評論部分

[英]How to make seperate comment section for each item

我正在制作 django 應用程序 我有一個問題 我不知道如何為每個項目制作單獨的評論部分。 我不想對頁面上的每個項目都有相同的評論。

模型.py

class Comment(models.Model):
    comment_user = models.OneToOneField(User, on_delete=CASCADE)
    item = models.OneToOneField(Item, on_delete=CASCADE)
    content = models.TextField(default='')

視圖.py

class ShopDetailView(DetailView):
model = Item 
template_name = 'shop/detail.html'
context_object_name = 'item'

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context['comments'] = Comment.objects.all()
    return context

對於DetailView ,您可以通過以下方式獲取相關評論:

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context['comments'] = Comment.objects.filter(item=self.object)
    return context

然而,在這里使用OneToOneField沒有多大意義,因為這意味着每個項目最多只能有一個評論。 你可能想要一個多對一的關系,因此使用ForeignKey [Django-doc]

class Comment(models.Model):
    comment_user = models.OneToOneField(User, on_delete=CASCADE)
    item = models.ForeignKey(Item, on_delete=CASCADE)
    content = models.TextField(default='')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM