#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 Теперь я хочу определить модель вручную