Django doesnotexist Комментарий, соответствующий запросу, не существует
Я хотел бы ввести комментарий для комментария
В модели ReComment, установите parent_comment в self как ForeignKey
Мне интересно, почему я получаю эту ошибку: Recomment matching query does not exist Я не знаю, как это исправить
models.py
class Comment(models.Model):
content = models.TextField(max_length=500, blank=False)
dt_created = models.DateTimeField(auto_now_add=True)
dt_update = models.DateTimeField(auto_now=True)
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name="comments")
post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name="comments")
likes = GenericRelation("Like", related_query_name="comment")
def __str__(self):
return self.content[:30]
class ReComment(models.Model):
comment = models.ForeignKey(Comment, on_delete=models.CASCADE, related_name="recomments")
content = models.TextField(max_length=500, blank=False)
dt_created = models.DateTimeField(auto_now_add=True)
dt_update = models.DateTimeField(auto_now=True)
parent_comment = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True ,related_name="parent_comments")
def __str__(self):
return self.content[:30]
views.py
class CommentCreateView(LoginAndVerificationRequiredMixin, CreateView):
http_method_names = ["post"]
model = Comment
form_class = CommentForm
def form_valid(self, form):
form.instance.author = self.request.user
form.instance.post = Post.objects.get(id=self.kwargs.get("pk"))
return super().form_valid(form)
def get_success_url(self):
return reverse("post-detail", kwargs={"pk":self.kwargs.get("pk")})
class ReCommentCreateView(LoginAndVerificationRequiredMixin, CreateView):
http_method_names = ["post"]
model = ReComment
form_class = ReCommentForm
def form_valid(self, form):
form.instance.author = self.request.user
form.instance.post = Post.objects.get(id=self.kwargs.get("pk"))
form.instance.comment = Comment.objects.get(id=self.kwargs.get("comment_id"))
form.instance.parent_comment = ReComment.objects.get(id=self.kwargs["recomment_id"])
return super().form_valid(form)
def get_success_url(self):
return reverse('post-detail', kwargs={"pk":self.object.post.id})