我编写了自定义后端,对远程服务器进行身份验证 . 我也想使用默认的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 . 我怎么解决?