Как я могу создать цикл комментариев и ответов?
Интересно, как я могу сделать цикл комментариев и ответов? Я хотел сделать комментарий с возможностью ответа, но и ответы тоже должны быть с возможностью ответа, чтобы лучше общаться, но я только студент и не имею большого опыта. вот мои модели :
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'],))
как я могу исправить просмотры и сделать комментарии и ответы ответными