由于用户身份验证,我的应用中的错误已经丢失了一些时间。我认为这有点令人困惑,但也许有人可以解释原因,这对我来说非常符合逻辑。
user.is_staff
是成员变量,而user.is_authenticated
是方法。但是,is_authenticated
仅返回True或False,具体取决于该类是User
还是AnonymousUser
(请参阅http://docs.djangoproject.com/en/dev/topics/auth/)
有原因吗?为什么user.is_authenticated
是一种方法?
提前致谢
答案 0 :(得分:8)
因为is_staff
是数据库字段而is_authenticated
不是(因为那会很奇怪)。也许is_authenticated
可以变成一个属性,但是django开发者必须已经决定,使它成为一个函数会更清楚。
答案 1 :(得分:0)
is_authenticated()只检查用户是否提供了有效的用户名和密码。 它不允许以访客用户身份登录用户(如果我没有错)。
答案 2 :(得分:0)
is_authenticated()
是用于检查天气用户当前对象是否已填充的功能。
因为数据库中不需要填充对象,所以没有必要,
如果正确填充,则仅该特定对象数据存储在数据库中。
因此,is_authenticated()
是方法而不是字段
属于user.is_staff已归档,用于表示特定的用户数据位于staff ex:-super_user下。为了区分用户,我们需要存储在数据库中