Основываясь на ответе @ Августо, я сделал следующее с менеджером моделей и с помощью библиотеки authtools. Это в querysets.py
:
from django.db.models import Q
from authtools.models import UserManager as AuthUserManager
class UserManager(AuthUserManager):
def get_users_with_perm(self, perm_name):
return self.filter(
Q(user_permissions__codename=perm_name) |
Q(groups__permissions__codename=perm_name)).distinct()
А потом в models.py
:
from django.db import models
from authtools.models import AbstractEmailUser
from .querysets import UserManager
class User(AbstractEmailUser):
objects = UserManager()