为什么AnonymousUser在Django中为is_authenticated返回True?

时间:2016-07-28 07:16:10

标签: django

我的视图文件中包含以下代码。

if request.user.is_authenticated:
    owner = request.user
    if cart.owner != owner:
        cart.owner = owner
    cart.save()

但是我遇到以下错误:

Cannot assign "<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x103ff37b8>>": "Cart.owner" must be a "User" instance.

为什么Django即使用户未经过身份验证也会运行cart.owner = owner行?

1 个答案:

答案 0 :(得分:3)

is_authenticated是一种方法,您只是检查是否有可用该名称的方法,而不是您的用户是否经过身份验证。

您需要调用该方法。

if request.user.is_authenticated():