首页 > 解决方案 > django 问题无法从 url 插入评论

问题描述

我一直在关注 django 女孩教程,但遇到了评论问题。我可以从管理界面向帖子添加评论,但无法从表单中添加评论。

这是我的模型:

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)
#author = models.CharField(max_length=200)
ctext = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
approved_comment = models.BooleanField(default=False)

def approve(self):
    self.approved_comment = True
    self.save()

def __str__(self):
    return self.ctext

这是我的表格:

    class CommentForm(forms.ModelForm):

        class Meta:
        model = Comment
        fields = ('ctext',)

还有一个观点:

    def add_comment_to_post(request, pk):
        post = get_object_or_404(Post, pk=pk)
        if request.method == "POST":
        form = CommentForm(request.POST, instance=post)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.author = request.user
            comment.post = post
            comment.save()
            return redirect('post_detail', pk=post.pk)
        else:
            form = CommentForm()
            return render(request, 'blog/add_comment_to_post.html', {'form': form})

任何建议都会有所帮助。谢谢你。

标签: djangopython-3.x

解决方案


评论中的 Sachin Kukreja 建议从评论表单中删除 instance=post,这解决了问题。谢谢!


推荐阅读