django - 匹配的查询不存在。不存在于 /blog/postComment
问题描述
我正在尝试在我的博客中添加评论和回复功能。但它不断向我抛出“博客评论匹配查询不存在”的错误。
def postComment(request):
if request.method == "POST":
comment = request.POST.get('comment')
user = request.user
postSno = request.POST.get('postSno')
post = Post.objects.get(sno=postSno)
parentSno = request.POST.get('parentSno')
if parentSno == "":
comment = BlogComment(comment=comment, user=user, post=post)
comment.save()
messages.success(request, "Your comment has been posted successfully")
else:
parent = BlogComment.objects.get(sno=parentSno)
comment = BlogComment(comment=comment, user=user, post=post, parent=parent)
comment.save()
messages.success(request, "Your reply has been posted successfully")
解决方案
当指定的键不存在时,该get()
方法默认返回。None
所以你应该检查if parentSno is not None:
而不是if parentSno == "":
.
(或者,您也可以使用方法的第二个参数来更改该默认值get()
:(例如,请参见此处)parentSno = request.POST.get('parentSno', "")
)。
推荐阅读
- reactjs - 如何使用查询字符串在 Next.js 中创建 api 端点
- r - 将列名合并到R中的字符串中
- r - 有人可以帮我解决在 R 中估计 VAR 模型时遇到的这个错误吗?
- python - PonyORM - 以编程方式设置字段值
- python - 如何在numpy中将n维数组转换为n维旋转矩阵?
- phpstorm - PhpStorm Refactor Namespace 更改所有文件,而不仅仅是我想要的文件
- sql - 如何绕过错误未知几何类型多曲线
- python - 关于 R 中的 st_cooridnates(),python 中的相同函数是什么?
- python - 如何使用模块在两个窗口之间传递自我
- python - 将递归函数重写为迭代方法