在Django中是否可以对具有2个字段的用户进行身份验证?

时间:2013-11-17 04:28:21

标签: django django-models django-authentication

我正在开发(目前正在设计)一个用于管理学院学生的Django应用程序。我的应用中的自定义用户的文件编号为用户名字段。但是,该应用程序有意处理多个机构,因此我不能仅使用文件编号进行身份验证,因为来自不同机构的两名学生可以拥有相同的文件编号。是否可以使用两个字段对用户进行身份验证?有什么线索吗?

1 个答案:

答案 0 :(得分:1)

我认为根本就是你需要创建自己的身份验证,然后注册它。

class YourBackend(object)
  def authenticate(self, username=None, your_other_field=None):
    # get user based on username AND other field
    return user instance or None

然后您只需在AUTHENTICATION_BACKEND注册即可。记住:

  

AUTHENTICATION_BACKENDS的顺序很重要,所以如果用户名相同   密码在多个后端有效,Django将停止   处理第一次正面比赛。