Django Как получить значение из рекурсивной ссылки на модель?

Я пытаюсь реализовать функцию комментирования комментариев через самоссылку.

error: models.ReComment.DoesNotExist: ReComment, соответствующий запросу, не существует.

Parent_comment модели ReComment был ForeignKey как self

Я распечатал self.kwarg и получил значение {'pk': 3, 'comment_id': 8}

models.py

class Post(models.Model):
    title = models.CharField(max_length=50)
    content = models.TextField()
    feeling = models.CharField(max_length=50, validators=[validate_no_numbers, validate_no_special_characters])
    score = models.IntegerField(validators=[validate_score, validate_no_special_characters])
    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="posts")
    
    likes = GenericRelation("Like", related_query_name="post")
    
    def __str__(self):
        return self.title

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", blank=True, null=True, on_delete=models.CASCADE, related_name="parent_comments")
    
    def __str__(self):
        return self.content[:30]

form.py

class CommentForm(forms.ModelForm):
    class Meta:
        model = Comment
        fields = [
            "content",
        ]
        
        widget = {
            'content': forms.Textarea,
        }

class ReCommentForm(forms.ModelForm):
    class Meta:
        model = ReComment
        fields = [
            "content",
        ]

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):
        self.object = form.save(commit=False)
        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"))
        print(self.kwargs)
        print(Post.objects.get(id=self.kwargs.get("pk")))
        print(Comment.objects.get(id=self.kwargs.get("comment_id")))
        form.instance.parent_comment = ReComment.objects.get(id=self.kwargs.get("parent_comment_id"))
        self.object.save()
        return super().form_valid(form)

Я не уверен, какую часть нужно исправить.

Значение parent_comment_id не появляется, какая часть неверна?

Как найти parent_comment_id?

пожалуйста помогите спасибо

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