int*_*_32 9 django django-authentication
if not request.user.is_authenticated:
    return None
try:
    return ClientProfile.objects.get(user=request.user)
except ClientProfile.DoesNotExist:
    return None
如果我没有登录并尝试调用它,则此代码应返回None.但正如我从stacktrace中看到的那样,崩溃时出现错误"'AnonymousUser'对象不可迭代"在这一行:
return ClientProfile.objects.get(user=request.user)
我正在以私人模式浏览以下页面,因此我100%未经过身份验证.
如何解决这个问题?
Ala*_*air 17
在Django 1.9及更早版本中,is_authenticated()是一种方法,你必须调用它.
if not request.user.is_authenticated():
    ...
忘记调用该方法是一个容易的错误.在您的情况下,它会导致错误,但在其他情况下,它可能允许用户访问他们不应该访问的数据.从Django 1.10开始,is_authenticated将更改为属性以防止此情况发生.
| 归档时间: | 
 | 
| 查看次数: | 7697 次 | 
| 最近记录: |