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

Django视图报错UnboundLocalError:context变量未赋值无法访问

Django视图UnboundLocalError问题修复

错误原因

你的代码中context变量仅在else分支(GET请求场景)里定义,当请求为POST且表单验证失败时,代码会执行到最后的return语句,但此时context未被赋值,因此触发UnboundLocalError。

修复后的代码

def assign_item_view(request, pk):
    item = Item.objects.get(Serial_no=pk)
    if request.method == "POST":
        form = AssignmentForm(request.POST, instance=item)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/user')
    else:
        form = AssignmentForm(instance=item)
    
    # 将context定义移至条件分支外,确保所有路径都能获取到该变量
    context = {"item": item,"form": form}
    return render(request, "workshop/Add_assignment.html", context)

关键修改说明

  • 把context的定义从else分支中移出,放在所有条件判断之后。这样无论处理GET请求,还是POST请求中表单验证失败的情况,context都会被正确赋值。
  • 当POST请求表单验证失败时,form会保留错误信息,传入模板后可以展示给用户,同时避免了变量未定义的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 15:42:04