代码之家  ›  专栏  ›  技术社区  ›  luc

在django中,为什么user.is_是经过身份验证的方法,而不是像is_staff那样的成员变量?

  •  1
  • luc  · 技术社区  · 16 年前

    由于用户身份验证,我的应用程序中出现了一个错误,这让我浪费了一些时间。我认为这有点让人困惑,但也许有人能解释原因,在我看来这是非常合乎逻辑的。

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

    这是有原因的吗?为什么? 用户已通过身份验证 是一种方法吗?

    提前谢谢

    2 回复  |  直到 16 年前
        1
  •  8
  •   gruszczy    16 年前

    因为 is_staff 是一个数据库字段 is_authenticated 不是(因为那会很奇怪)。也许吧 是否经过身份验证 可能会变成一个属性,但django devs肯定已经决定,让它成为一个函数会更清晰。

        2
  •  0
  •   Praveen    16 年前

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