我对Django比较陌生,正在尝试对Django的核心身份验证模块进行一些更改。我在django.contrib.auth.backends.py的ModelBackend类的authenticate方法中添加了一些根据用户的电子邮件地址对用户进行身份验证的新代码,但是这个新代码似乎没有任何效果,即使我将以下内容添加到我的设置中也是如此。
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
)实际上,我删除了整个authenticate方法,仍然能够很好地登录到我的Django应用程序中。有人知道我在哪里出错了吗?最好的方法是修改Django的核心身份验证系统吗?
发布于 2011-07-25 14:16:02
您应该将django.contrib.auth.backends.ModelBackend后端导入到一个模块中,对其进行子类化,覆盖流程中的authenticate,然后将AUTHENTICATION_BACKENDS指向您的子类。请参阅手册中关于writing your own authentication backend的部分。
不要直接更改django.contrib中的任何内容。
当你把东西取出来的时候,身份验证成功了,我一点也不惊讶。Django的身份验证是一个附加组件;Django需要能够在没有它的情况下工作,所以默认设置是"allow“。
https://stackoverflow.com/questions/6812167
复制相似问题