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

Django从HTML输入取数据执行函数遇AttributeError问题求助

Django中'WSGIRequest' object has no attribute 'get' 错误排查方案
  • 核心错误原因:你直接对Django的WSGIRequest(即视图函数中的request对象)调用了get()方法,但这个对象本身没有该方法。正确的参数获取方式是通过request.POST或request.GET这两个类字典对象来调用get()。

  • 常见错误写法与修正:
    错误代码:

    # 视图函数中错误的取值方式
    def pruebas_view(request):
        num1 = request.get('num1')
        num2 = request.get('num2')
        result = int(num1) + int(num2)
        return render(request, 'result.html', {'result': result})
    

    正确代码(根据表单提交方式选择POST或GET):

    # 表单用POST提交时的正确写法
    def pruebas_view(request):
        if request.method == 'POST':
            num1 = request.POST.get('num1')
            num2 = request.POST.get('num2')
            result = int(num1) + int(num2)
            return render(request, 'result.html', {'result': result})
        return render(request, 'input_form.html')
    

    或者如果是GET提交:

    def pruebas_view(request):
        num1 = request.GET.get('num1')
        num2 = request.GET.get('num2')
        if num1 and num2:
            result = int(num1) + int(num2)
            return render(request, 'result.html', {'result': result})
        return render(request, 'input_form.html')
    
  • 额外排查点:

    • 检查URL配置,确保没有错误地将request作为参数直接传入视图函数,比如不要写path('pruebas/', views.pruebas_view(request)),正确写法是path('pruebas/', views.pruebas_view)。
    • 核对教程代码中表单的method属性,确保后端取值的request.POST/request.GET和表单提交方式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:20:47