@bwylla

Ошибка при добавлении комментария?

Если пытаться добавить комментарий к посту через форму, то выдает такую ошибку.
IntegrityError at /post/7/comment/
NOT NULL constraint failed: blog_comment.post_id
Но если написать коммент через админку, то никаких ошибок нет и все ок. К стати после того как добавил комментарий, то после на странице пропадает ссылка на форму для коммента. Почему?

#models.py
class Comment(models.Model):
    post = models.ForeignKey('blog.Post', on_delete=models.CASCADE, related_name='comments')
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    text = models.TextField(null=True, blank=True)
    pub_date = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.text

#views.py
def add_comment(request, pk):
    post = get_object_or_404(Post, pk=pk)
    if request.method == 'POST':
        add_comment_form = CommentForm(request.POST)
        if add_comment_form.is_valid():
            comment_form = add_comment_form.save(commit=False)
            comment_form.author = request.user
            comment_form.save()
            return redirect('post_detail', pk=post.pk)
    else:
        add_comment_form = CommentForm()
    return render(request, 'blog/add_comment.html', {'add_comment_form': add_comment_form})
  • Вопрос задан
  • 549 просмотров
Пригласить эксперта
Ответы на вопрос 1
@immaculate
Программист-путешественник
Вопрос явно неполный без кода CommentForm. Либо в ней, либо во view надо заполнять все поля, которые требуются в модели (hint: post - обязательное поле в модели Comment).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы