Django报错:local variable 'context' referenced before assignment 求排查
Django报错:local variable 'context' referenced before assignment 排查方案
- 报错核心原因:你的视图函数中,
context变量仅在部分代码分支中被定义,当代码走到未定义context的分支时,就会触发该错误。 - 常见错误场景示例:
def my_view(request): if request.method == "POST": # 仅POST请求时定义了context form = MyForm(request.POST) context = {"form": form} # GET请求时,context未定义,执行到这里就会报错 return render(request, "my_template.html", context) - 修复方法:
- 方式一:在函数开头初始化一个默认的
context字典,后续分支中再修改它def my_view(request): context = {} # 先初始化空字典 if request.method == "POST": form = MyForm(request.POST) context["form"] = form return render(request, "my_template.html", context) - 方式二:确保所有代码分支都定义
context,比如给else分支也加上定义def my_view(request): if request.method == "POST": form = MyForm(request.POST) context = {"form": form} else: form = MyForm() context = {"form": form} return render(request, "my_template.html", context)
- 方式一:在函数开头初始化一个默认的
- 额外提醒:如果你的视图是类视图,检查
get_context_data方法是否正确返回了context,避免出现分支遗漏的情况。
内容的提问来源于stack exchange,提问作者Doğukan DAĞ
相关产品推荐
相关产品推荐

