我编写了自定义后端,对远程服务器进行身份验证 . 我也想使用默认的django后端(所以我的管理员django用户仍然可以登录管理区域),所以我把我的后端放在:
AUTHENTICATION_BACKENDS = (
'myApp.backends.UserBackend',
'django.contrib.auth.backends.ModelBackend',)
我还为UserBackend编写了自定义用户:
class MyUser(AbstractBaseUser):
USERNAME_FIELD = 'email'
id = models.CharField(max_length=255, primary_key=True)
email = models.EmailField(_('email address'), max_length=255, blank=True, unique=True)
class Meta:
managed = False
然后我写了我的 authenticate()
方法,它是我的MyUser .
由于我想使用两个用户模型(每个用于后端),而MyUser仅在内存中用于保存来自远程身份验证的json,我不想编辑AUTH_USER_MODEL . 但问题是这样做,当我登录后端时,它使用的是用户模型,而不是MyUser . 我怎么解决?