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

Django表单提交始终触发GET请求而非POST请求求助

表单提交始终触发GET请求的排查方案

核心问题:表单未指定POST方法

你提供的模板代码中缺失了<form>标签的开头部分。HTML表单默认请求方法为GET,必须显式声明method="POST"才能触发POST请求。

修改模板的表单结构:

<form method="POST" action="">
    {% csrf_token%}
    
    Item name 
    {{form.item_name}}
    
    Quantity
    {{form.quantity}}
  
    <div class="form-group">       
        <label for="address">Address</label>
        {{form.address}}
    </div>
    <div class="modal-footer d-flex justify-content-center">
        <button type="submit" id="submit" class="btn btn-success">Donate</button>
    </div>
</form>

额外修正点

  1. 移除data-dismiss="modal"属性:该Bootstrap属性会在点击按钮时立即关闭模态框,可能导致表单提交流程被中断,引发请求异常。若需提交后关闭模态框,建议通过JavaScript监听表单提交成功事件来实现。

  2. 匹配表单字段与视图处理逻辑:你的视图代码中使用form.cleaned_data['item']和form.cleaned_data['itemquantity'],但模型Donate及模板渲染的字段为item_name和quantity,字段名不匹配会导致表单验证失败。修正视图代码:

if form.is_valid():
    print('Form is valid!!')
    Donate.objects.create(
        user_name=get_user,
        item_name=form.cleaned_data['item_name'],
        quantity=form.cleaned_data['quantity'],
        address=form.cleaned_data['address']
    )

注:无需调用form.save(),直接用当前登录的get_user关联即可,避免因表单定义问题导致的对象关联错误。

  1. 确认表单action属性:若表单需提交到当前视图,保持action=""或省略该属性即可,避免因URL错误引发请求异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:40:31