You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中ModelForm加载正常但按回车键提交无响应该如何解决

问题原因

你遇到的问题由两处错误共同导致:

  • 模板文件的表单中没有添加提交按钮,大部分浏览器在表单无显式submit元素时,按下回车键不会触发提交动作
  • 视图逻辑存在错误,即使表单提交成功,也会被后续的空表单实例覆盖,且没有做提交成功后的重定向,会导致重复提交、错误提示无法展示等问题

修复方案

1. 修正template.html代码

在form标签内添加提交按钮:

<form method="POST">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">提交数据</button>
</form>

2. 修正views.py逻辑

调整视图的处理流程,验证成功后重定向,验证失败保留带错误的表单实例:

from django.shortcuts import redirect, reverse

def DrinksView(request):
    # 仅POST请求时绑定POST数据
    if request.method == 'POST':
        form = DrinksForm(request.POST)
        if form.is_valid():
            print("VALIDATION COMPLETE")
            form.save()
            # 提交成功后重定向到当前页面,避免刷新重复提交,替换成你自己绑定的URL名称即可
            return redirect(reverse('当前视图对应的url名称'))
    # GET请求或者验证不通过时初始化表单,验证不通过的form会自带错误信息传给前端
    else:
        form = DrinksForm()
    return render(request, 'form2.html', {'form': form})

可选优化(非必填)

你当前models.py中DecimalField的max_digits参数设置为2000,这个值远超常规业务需求,Django对该字段的最大值也有适配限制,建议根据实际业务调整到合理值(比如最多保留10位整数加2位小数的话设置为12即可):

number  = models.DecimalField(decimal_places=2, max_digits=12) 

内容的提问来源于stack exchange,提问作者greg7929

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:45:08