如何确定用户的状态?

时间:2014-11-08 09:29:12

标签: python django

请帮助解决问题。

是一个定义登录用户的函数: views.py:

def ajax_is_authenticated_check(request):
    """
    ajax check auth for like process and any
    """ 
    result = False

    if request.method == 'POST' and request.is_ajax():
        if request.user.is_authenticated:
            result = True

    data = {
        'is_authenticated': result
    }

    print(result)   #this is output to console

    return HttpResponse(json.dumps(data), content_type='application/json')  

结果函数总是返回" true"。和输出控制台" true"。

目前尚不清楚为什么,如果用户没有进入,它仍然会回来" true"

2 个答案:

答案 0 :(得分:4)

那是因为is_authenticated是一种方法,而不是财产。

代码应如下所示

if request.method == 'POST' and request.is_ajax():
        if request.user.is_authenticated(): # note the ()
            result = True

答案 1 :(得分:0)

从Django 1.10开始,is_authenticated是一个属性,您可以使用request.user.is_authenticated

对于低于1.10的版本,您需要在视图中使用request.user.is_authenticated()

注意:在所有版本的模板中,您都可以使用request.user.is_authenticated