由于用户身份验证,我的应用程序中出现了一个bug,这让我损失了一些时间。我认为这有点令人困惑,但也许有人能解释一下原因,在我看来这是非常合乎逻辑的。
user.is_staff
是成员变量,而user.is_authenticated
是方法。但是,根据类是User
还是AnonymousUser
,is_authenticated
只返回True或False (请参阅http://docs.djangoproject.com/en/dev/topics/auth/)
这有什么原因吗?为什么user.is_authenticated
是一种方法?
提前感谢
发布于 2010-03-15 09:04:34
因为is_staff
是一个数据库字段,而is_authenticated
不是(因为这会很奇怪)。也许is_authenticated
可以变成一个属性,但django开发人员肯定已经决定,把它变成一个函数会更清晰。
发布于 2010-03-15 11:00:01
is_authenticated()只检查用户是否提供了有效的用户名和密码。它将不允许用户作为访客用户登录(如果我没有错话)。
发布于 2020-05-16 05:00:30
is_authenticated()
是检查用户当前对象是否填充的函数。
不需要将对象是否被填充存储在数据库中,
如果它被正确填充,则只有该特定对象数据存储在数据库中。
因此,is_authenticated()
是方法,而不是user.is_staff字段,该字段用于表示属于人员例如:- super_user下的特定用户数据。为了区分用户,我们需要存储在数据库中
https://stackoverflow.com/questions/2445952
复制相似问题