[英]local variable 'username' referenced before assignment django
我創建了一個稱為面板的 function。 當我運行服務器時,它會給出錯誤“UnboundLocalError at /service-panel/ local variable 'username' referenced before assignment”。 我不知道出了什么問題。
這是views.py
@login_required
def panel(request):
if(request.session.has_key('username')):
username = request.session['username']
data = Enquiry.objects.filter(service=request.session['service'])
return render(request, 'service-provider-panel/base.html', {'username':username, 'data':data})
你有一個邏輯錯誤:
@login_required
def panel(request):
if(request.session.has_key('username')):
username = request.session['username']
data = Enquiry.objects.filter(service=request.session['service'])
else:
# else statement is needed because the variables username and data must be defined.
username = None
data = None
return render(request, 'service-provider-panel/base.html', {'username':username, 'data':data})
問題是條件request.session.has_key('username')
可以是False
。 然后,不會分配username
變量。 與data
變量相同。
一個解決方案可能是:
@login_required
def panel(request):
username = None
data = None
if(request.session.has_key('username')):
username = request.session['username']
data = Enquiry.objects.filter(service=request.session['service'])
return render(request, 'service-provider-panel/base.html', {'username':username, 'data':data})
當data
或username
為None
時,您需要控制模板中的邏輯( service-provider-panel/base.html
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.