gpt4 book ai didi

django - “AnonymousUser”对象不可迭代

转载 作者:行者123 更新时间:2023-12-03 01:31:53 24 4
gpt4 key购买 nike

if not request.user.is_authenticated:
return None

try:
return ClientProfile.objects.get(user=request.user)
except ClientProfile.DoesNotExist:
return None

如果我没有登录并尝试调用它,此代码应该返回 None。但正如我从堆栈跟踪中看到的,它崩溃并出现错误“'AnonymousUser'对象不可迭代”:

return ClientProfile.objects.get(user=request.user)

我正在以私密模式浏览以下页面,因此我 100% 未经过身份验证。

如何解决这个问题?

最佳答案

在 Django 1.9 及更早版本中,is_authenticated()是一个方法,您必须调用它。

if not request.user.is_authenticated():
...

忘记调用该方法是一个很容易犯的错误。在您的情况下,它会导致错误,但在其他情况下,它可能允许用户访问他们不应该访问的数据。从 Django 1.10 开始,is_authenticated正在更改属性以防止出现这种情况。

关于django - “AnonymousUser”对象不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37448624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com