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