django:在现有用户模型上设置自定义用户管理器

时间:2016-02-02 15:57:55

标签: django

我想在django中实现不区分大小写的登录。我知道这件事:

class MyUserManager(BaseUserManager):
    def get_by_natural_key(self, username):
        return self.get(username__iexact=username)

但我该怎么做呢?如果我可以帮助它,我不想更改或子类化现有的用户模型。我需要吗?

1 个答案:

答案 0 :(得分:0)

我认为您需要的只是更改您的用户模型管理器。 要覆盖模型管理器,您所要做的就是这样。

class MyUser(AbstractUser):
    objects = MyUserManager()

现在您可以制作如下过滤器。

MyUser.objects.get_by_natural_key('the-user-name-requested')