为什么AnonymousUser在Django中对is_进行身份验证时返回True?

为什么AnonymousUser在Django中对is_进行身份验证时返回True?,django,Django,我的视图文件中有以下代码 if request.user.is_authenticated: owner = request.user if cart.owner != owner: cart.owner = owner cart.save() 然而,我面临以下错误: 无法分配“”:“Cart.owner”必须是“用户”实例。 为什么Django运行行cart.owner=owner,即使用户未经身份验证?是否已通过身份验证是一种方法,您只是检查是否有可

我的视图文件中有以下代码

if request.user.is_authenticated:
    owner = request.user
    if cart.owner != owner:
        cart.owner = owner
    cart.save()
然而,我面临以下错误:

无法分配“”:“Cart.owner”必须是“用户”实例。


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

是否已通过身份验证
是一种方法,您只是检查是否有可用的方法,而不是检查您的用户是否已通过身份验证

您需要调用该方法

if request.user.is_authenticated():

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

您需要调用该方法

if request.user.is_authenticated():

倒霉。谢谢,新手。:)请注意,在Django 1.10中,
经过身份验证
正在从一个方法更改为一个属性,这样用户就不会忘记调用它了。谢谢,新手。:)请注意,在Django 1.10中,
经过身份验证
正在从一个方法更改为一个属性,这样用户就不会因为忘记调用它而被发现。