Использование AppConfig.get_model в пользовательском диспетчере

#django #django-models

Вопрос:

Поэтому мне нужно заставить модель использовать self.model в моем пользовательском менеджере в AppConfig.get_model, но я не понимаю, как ее использовать.

<<managers.py><managers.py>>

 class CustomUserManager(BaseUserManager):
use_in_migrations = True
model = ???

def _create_user(self, email, password, **extra_fields):
    if not email:
        raise ValueError(_("email is required"))
    email = self.normalize_email(email)
    user = self.model(email=email, **extra_fields)
    user.set_password(password)
    user.save(using=self._db)
    return user

def create_user(self, email, password=None, **extra_fields):
    extra_fields.setdefault('is_superuser', False)
    return self._create_user(email, password, **extra_fields)

def create_superuser(self, email, password, **extra_fields):
    extra_fields.setdefault('is_superuser', True)

    if extra_fields.get('is_superuser') is not True:
        raise ValueError(_('Superuser should to have flag is_superuser=True'))

    return self._create_user(email, password, **extra_fields)
 

Комментарии:

1. Зачем вам это нужно делать? Пока вы объявляете менеджера в качестве атрибута, Django будет внутренне устанавливать атрибут модели для менеджера.

2. @AbdulAzizBarkat Теперь я хочу определить модель вручную