我在 Django 框架的最后一行收到"variable has been referenced before intialization"错误


def result(request):
check = None
try:
check = user_answers.objects.get(username=request.session["username"])
except:
check = None
if check:
results,a1,a2,a3,a4,a5 = getPredictions(check)
username = request.session["username"]
ans = clusterNum.objects.create(username_id=request.session["username"],clusNo =             results[0],extroversion=a1,neurotic=a2,agreeable=a3,conscientious=a4,openness=a5)
ans.save()

# results = getPredictions()
return render(request,'result.html',{'name':username,'a1':a1,'a2':a2,'a3':a3,'a4':a4,'a5':a5})

我试着将它们转换为全局,但结果并不像预期的那样,在网页中没有显示任何值

Traceback (most recent call last):
File "D:DjangopredictorPersonalityviews.py", line 230, in result
return render(request,'result.html', 
{'name':username,'a1':a1,'a2':a2,'a3':a3,'a4':a4,'a5':a5})
Exception Type: UnboundLocalError at /personality/result
Exception Value: local variable 'results' referenced before 
assignment

在这段代码中,变量只获取'if-check:'子句中的值。换句话说,当这行代码引发异常时:

check=user_answers.objects.get(username=request.session["username"](

或者当检查变量具有负值(False、0、None、empty list…(时,解释器不会进入"if check:"子句。因此,您的变量(username,a1…(不会"存在";。然而,他们是在最后一行被召唤的。

相关内容

最新更新