Django中Save()方法无法将表单数据保存至数据库
问题排查与修复
核心问题出在views.py的create函数中,你仅引用了form.save方法,但未调用它,导致表单数据没有写入数据库。
修复代码
修改views.py中的create函数,将form.save改为form.save():
def create(request): error = '' if request.method == 'POST': form = ArticlesForm(request.POST) if form.is_valid(): form.save() # 添加括号,执行保存方法 return redirect('./') else: error = "格式错误" form = ArticlesForm() data = { 'form': form, 'error': error } return render(request, 'news_templates/create.html', data)
额外优化建议
- 重定向路径建议使用命名URL(需在
urls.py中给news视图设置name参数),比如return redirect('news'),避免相对路径可能带来的问题。 - 模型的
Meta类中建议添加verbose_name_plural = 'news',避免admin后台中复数显示异常。 - 模板中可使用
{{ form.as_p }}渲染表单,自动处理字段布局与错误提示,代码更简洁。
验证说明
从服务器日志看POST请求返回302重定向正常,说明表单验证已通过,修改后重新提交表单,数据即可正常写入数据库。
内容的提问来源于stack exchange,提问作者UserAbuser
相关产品推荐
相关产品推荐

