Dan*_*mov 4 django django-authentication
当我没有登录时,我正在努力is_authenticated回归True:
u = request.user
if u.is_authenticated:
raise Exception('I am said to be authenticated, but I really am not.')
Run Code Online (Sandbox Code Playgroud)
为了澄清,Django调试视图正确识别u为AnonymousUser:
u <django.contrib.auth.models.AnonymousUser object at 0x9e76f4cc>
Run Code Online (Sandbox Code Playgroud)
更奇怪的是,模板内部 is_anonymous工作正常:
{% if not request.user.is_authenticated %}
We are anonymous.
{% endif %}
Run Code Online (Sandbox Code Playgroud)
这是为什么?
Dan*_*man 26
这是一种方法,而不是财产.你需要打电话给它:
if u.is_authenticated():
Run Code Online (Sandbox Code Playgroud)
is_authenticated是一种方法,所以你需要一些括号.否则,u.is_authenticated是函数对象,它是一个Trueish值.
在模板语言中,没有参数的函数被评估为函数,这就是为什么你在那里很好的原因.
| 归档时间: |
|
| 查看次数: |
4151 次 |
| 最近记录: |