Как я могу создать цикл комментариев и ответов?

Интересно, как я могу сделать цикл комментариев и ответов? Я хотел сделать комментарий с возможностью ответа, но и ответы тоже должны быть с возможностью ответа, чтобы лучше общаться, но я только студент и не имею большого опыта. вот мои модели :

class Comment(models.Model):
    #comments model
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    text = models.CharField(max_length=300)
    user = models.ForeignKey(get_user_model(),on_delete=models.CASCADE)
    date = models.DateTimeField(auto_now_add=True)

    class Meta():
        verbose_name_plural = 'Comments'
        ordering = ['date']
    
    def __str__(self):
        return self.test[:50]

class Reply(models.Model):
    #replying to comments
    comment = models.ForeignKey(Comment,on_delete=models.CASCADE)
    text = models.CharField(max_length=300)
    user = models.ForeignKey(get_user_model(),on_delete=models.CASCADE)
    date = models.DateTimeField(auto_now_add=True)

    class Meta():
        verbose_name_plural = 'Replies'
        ordering = ['date']
    
    def __str__(self):
        return self.text[:50]

Проблема в том, что если я использую эти модели, мне придется создавать новую модель для каждого ответа, а это не в цикле. Также я пытался проверить, работает ли комментарий с возможностью ответа или нет, и у меня возникла проблема с представлением: Я не смог добавить обе формы (комментарий, ответ) в одну get_context_data()

class PostDetailView(FormView, DetailView):
    #detail page of items
    template_name = 'pages/post_detail.html'
    model = Post
    form_class = CommentForm, ReplyForm

    def get_context_data(self, **kwargs):
        
        context = super(PostDetailView, self).get_context_data(**kwargs)
        context['form'] = self.get_form()
        return context

    def post(self,request, *args, **kwargs):
        form = CommentForm(request.POST)
        if form.is_valid():
            form_instance = form.save(commit=False)
            form_instance.user = self.request.user
            form_instance.post = self.get_object()
            form_instance.save()
            return HttpResponseRedirect(self.get_success_url())
        else:
            super().is_invalid(form)
    
    def get_success_url(self):
        return reverse('pages:post_detail',args=(self.kwargs['pk'],))

как я могу исправить просмотры и сделать комментарии и ответы ответными

Вернуться на верх