Django博客无法新增评论:提交后仅页面刷新无效果问题求助
问题根因
你的评论系统无法提交的核心原因是模板文件blog/post/detail.html中表单属性拼写错误:你将表单提交方法属性method错写为methon,浏览器识别不到正确的提交方法,会默认使用GET方式发送请求,所以post_detail视图中if request.method == 'POST'的逻辑永远不会触发,每次提交都会直接走else分支初始化空表单,表现为页面刷新但评论不保存。
修复步骤
- 打开
blog/post/detail.html文件,找到评论提交的form标签,修改为正确的写法:
<form method="post"> {{ comment_form.as_p }} {% csrf_token %} <p><input type="submit" value="Add comment"></p> </form>
注:你的评论提交不需要上传文件,原代码中的enctype="multipart/form-data"属性可以直接删除,不影响功能。
2. 修改完成后重启Django开发服务,重新提交评论即可正常保存。
可选优化建议
当前代码没有处理表单验证失败的场景,如果用户提交的内容不符合CommentForm的字段规则,页面只会刷新不会有错误提示,建议在表单上方添加错误提示逻辑,示例如下:
{% if comment_form.errors %} <div class="alert alert-danger"> 提交失败,请修正以下错误: {% for field in comment_form %} {% for error in field.errors %} <p>{{ field.label }}: {{ error }}</p> {% endfor %} {% endfor %} </div> {% endif %}
内容的提问来源于stack exchange,提问作者ecrire06
相关产品推荐
相关产品推荐

