django - 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})
任何建议都会有所帮助。谢谢你。
解决方案
评论中的 Sachin Kukreja 建议从评论表单中删除 instance=post,这解决了问题。谢谢!
推荐阅读
- python - 错误:OSError:libmediainfo.so.0:无法打开共享对象文件:没有这样的文件或目录
- swift - Swift Append() 方法覆盖以前的数据
- jquery - jquery validate避免将errorClass添加到输入
- python-3.x - Dask中的二维布尔索引
- laravel - 从表格中选择不同的名称和编号并将其显示到下拉框中,然后保存我该怎么办?
- c# - FitNesse - 检查变量是否不包含脚本表中的文本
- python - 导入 keras 时获取 DLL 加载失败
- amazon-web-services - 如何在 AWS EMR 笔记本上安装 python 库?
- javascript - PHP foreach 中的 Javascript
- excel - 如何使用 If 函数在宏中请求复选框(真/假)