Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 局部变量';用户名';在分配django之前引用_Python_Django_Session_Django Views - Fatal编程技术网

Python 局部变量';用户名';在分配django之前引用

Python 局部变量';用户名';在分配django之前引用,python,django,session,django-views,Python,Django,Session,Django Views,我创建了一个名为panel的函数。 当我运行服务器时,它会给出一个错误“UnboundLocalError at/service panel/分配前引用的局部变量'username'。 我不知道出了什么问题 这里是视图。py @login_required def panel(request): if(request.session.has_key('username')): username = request.session['username'] d

我创建了一个名为panel的函数。 当我运行服务器时,它会给出一个错误“UnboundLocalError at/service panel/分配前引用的局部变量'username'。 我不知道出了什么问题

这里是视图。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\u key('username')
可能是
False
。然后,将不分配
用户名
变量。与
数据
变量相同

解决办法可以是:

@需要登录\u
def面板(请求):
用户名=无
数据=无
如果(request.session.has_key('username')):
用户名=请求。会话['username']
数据=查询.objects.filter(服务=请求.session['service'])
返回呈现(请求'serviceproviderpanel/base.html',{'username':username','data':data})
数据
用户名
时,您需要控制模板(
服务提供商面板/base.html
)中的逻辑