Сохранение комментария Django в БД, но не в посте

Комментарии сохраняются в БД, но не связываются с постом, пока я вручную не перейду на страницу администратора и не свяжу их.

MODELS.PY

class Post(models.Model):
    title = models.CharField(max_length=50)
    description = models.CharField(max_length=50)
    info = models.TextField(max_length=2000)
    slug = models.SlugField(null=True, unique=True, max_length=300)
    created = models.DateField(null=True, auto_now_add=True)
    approved = models.BooleanField(default=False, blank=True)
    id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)


class Comment(models.Model):
    post = models.ForeignKey(Post, related_name="comments", on_delete=models.CASCADE, null=True)
    name = models.CharField(max_length=50, verbose_name="Name")
    comment = models.TextField(max_length=500, verbose_name="Comment")
    created = models.DateField(null=True, auto_now_add=True)
    approved = models.BooleanField(default=False, blank=True)
    id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)

FORMS.PY

class CommentForm(forms.ModelForm):
    class Meta:
        model = Comment
        fields = ['name','comment']

VIEWS.PY

def create_comment(request, slug):
    form = CommentForm()
    post = Post.objects.get(slug=slug)

    if request.method == "POST":
        form = CommentForm(request.POST)
        comment = form.save()
        review.post = post
        review.save()

        messages.success(request, 'Your comment was successfully submitted!')
        return render(request, 'post.html', {'post': post, 'form':form})
    return render(request, 'post.html', {'post': post, 'form':form})

На странице администратора я могу добавить комментарий и вручную связать его с постом, но из формы на фронтенде комментарий создается и сохраняется в БД, но не связан ни с одним постом. Есть идеи, что я делаю неправильно?

Откуда берется этот экземпляр объекта review, разве это не объект comment?

Также проверьте, действительна ли форма:

def create_comment(request, slug):
    form = CommentForm()
    post = Post.objects.get(slug=slug)

    if request.method == "POST":
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save()
            comment.post = post
            comment.save()

            messages.success(request, 'Your comment was successfully submitted!')
            return render(request, 'post.html', {'post': post, 'form':form})
            
    return render(request, 'post.html', {'post': post, 'form':form})
Вернуться на верх