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

Django使用inlineformset保存表单时报错:'WSGIRequest'对象无'get'属性

问题根因

错误来自两处代码编写失误:

  1. 实例化inline表单集时参数传错:Django表单/表单集接收的第一个参数是提交的表单数据request.POST,而非整个request对象。你直接把request传入表单集,表单内部尝试调用.get()方法读取字段值时,WSGIRequest对象本身没有这个方法,就抛出了对应的属性错误。
  2. 表单验证调用方式错误:is_valid是需要执行的方法,必须加括号调用,否则直接判断方法对象的布尔值永远为True,不会实际执行表单校验逻辑。
修复方案

直接替换views.py中的createOrder视图代码即可:

def createOrder(request, pk):
    OrderFormSet= inlineformset_factory(Customer, Order, fields=('product', 'status'))
    customer = Customer.objects.get(id=pk)
    form_set_value= OrderFormSet(instance=customer)
    if request.method == 'POST':
        # 第一个参数传入POST数据而非整个request对象
        form_set_value= OrderFormSet(request.POST, instance=customer)
        # is_valid是方法,需要加括号调用执行校验
        if form_set_value.is_valid():
            form_set_value.save()
            return redirect('/')
    context = {'form_set_key':form_set_value}
    return render(request, 'accounts/order_form.html', context)

如果后续表单涉及文件上传需求,修改实例化代码为OrderFormSet(request.POST, request.FILES, instance=customer)即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:48:02