请帮助解决问题。
是一个定义登录用户的函数: 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"
答案 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
。