我在保存几乎相同类型的表单时遇到了这个错误(在赋值之前引用了UnboundLocalError局部变量'context')。其他类型的表单工作正常,但这个没有,并且显示出错误
def clutchDetail(request):
clutchDetail = ClutchDetail.objects.all()
context = {'title': 'Clutch Detail',
'active': 'active',
'clutchDetail': clutchDetail,
}
return render(request, 'breedingRecApp/clutch_detail.html', context)
def\u add(请求):
if request.method == "POST":
form = ClutchDetail_AddModelForm(request.POST or None)
if form.is_valid():
try:
form.save()
return redirect('breedingRecApp:clutch_detail')
except:
pass
else:
form = ClutchDetail_AddModelForm()
context = {'title': 'Species Detail Add',
'active': 'active',
'model': ClutchDetail,
'form': form,
}
return render(request, 'breedingRecApp/clutch_detail_add.html', context)
请帮我纠正这个错误我是Django的新手。我有一个其他形式的代码,这是100%相同的工作正常,但这个给我一个错误,我被困在它:(
出现此错误的原因是,函数包含一个代码路径,在该路径中使用
context
变量,而不首先定义变量。例如,当您发出POST请求时,form.is_valid()
检查失败。在这种情况下,代码流将调用render(..)
函数,但您没有定义context
变量最小的解决方法可能是将
context
变量的定义移到else
语句之外:谈论第二个代码块
唯一的地方
定义在第12行
这只在触发else:语句时运行,因此
如果未触发else语句,则不会定义上下文 干杯
如果方法是POST,
form.is_valid()
返回False
,或者form.save()
引发异常,则会引发此错误,因为您从未声明上下文变量您也可能不需要对
try: except:
调用执行form.save()
,因为此时表单是有效的相关问题 更多 >
编程相关推荐