Skip to main content
 首页 » 编程设计

python之在Django中,为什么user.is_authenticated是一个方法而不是像is_staff这样的成员变量

2025年05月04日23yjmyzz

由于用户身份验证,我的应用程序中存在错误,这让我浪费了一些时间。我认为这有点令人困惑,但也许有人可以解释原因,而且在我看来这很合乎逻辑。

user.is_staff 是一个成员变量,而user.is_authenticated 是一个方法。然而,is_authenticated 仅返回 True 或 False,具体取决于类是 User 还是 AnonymousUser(参见 http://docs.djangoproject.com/en/dev/topics/auth/)

这有什么原因吗?为什么 user.is_authenticated 是一个方法?

提前致谢

请您参考如下方法:

因为 is_staff 是一个数据库字段而 is_authenticated 不是(因为那样会很奇怪)。也许 is_authenticated 可以变成一个属性,但 django 开发人员一定已经决定,将它变成一个函数会更清楚。