Django:自定义后端和自定义用户,无需更改AUTH_USER_MODEL

时间:2016-03-30 14:40:29

标签: python django authentication

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

0 个答案:

没有答案