1

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

user.is_staff是成员变量,而是user.is_authenticated方法。但是is_authenticated,仅返回 True 或 False 取决于类是Useror AnonymousUser(请参阅http://docs.djangoproject.com/en/dev/topics/auth/

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

提前致谢

4

3 回答 3

8

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

于 2010-03-15T09:04:34.040 回答
0

is_authenticated() 只是检查用户是否提供了有效的用户名和密码。它不允许以访客用户身份登录用户(如果我没记错的话)。

于 2010-03-15T11:00:01.493 回答
0

is_authenticated()是检查天气用户当前对象是否填充的功能。

没有必要将对象是否填充到数据库中,因为,

如果正确填充,则只有该特定对象数据存储在数据库中。

因此,该is_authenticated()方法不是提交给 user.is_staff 的字段,用于表示特定用户数据的字段位于人员 ex:- super_user 之下。为了区分用户,我们需要存储在数据库中

于 2020-05-16T05:00:29.673 回答