• Как создать свою модель пользователя в django?

    @bromzh
    Drugs-driven development
    В новой джанге можно кастомизировать модель пользователя.

    Попроси модераторов гугла убрать у тебя бан на поиск.

    UPD
    Сжатый пересказ, при учёте, что ты создаёшь приложение с нуля, а не мигрируешь с созданного приложения с готовой базой и пользователями:

    1. В настройках указываешь путь до твоей модели:
      AUTH_USER_MODEL = 'myapp.MyUser'
    2. Везде в моделях где используется внешний ключ на юзера, прописываешь settings.AUTH_USER_MODEL
      class Article(models.Model):
          author = models.ForeignKey(settings.AUTH_USER_MODEL)

      И тоже делаешь для сигналов:
      def post_save_receiver(signal, sender, instance, **kwargs):
          pass
      
      post_save.connect(post_save_receiver, sender=settings.AUTH_USER_MODEL)

    3. Создаёшь модель пользователя, в которой указываешь поле-идентефикатор (например, это может быть поле name, или поле email, или ещё какое-нибудь другое).
      class MyUser(AbstractBaseUser):
          identifier = models.CharField(max_length=40, unique=True)
          ...
          USERNAME_FIELD = 'identifier'

      В этой же модели прописываешь необходимые для регистрации поля:
      class MyUser(AbstractBaseUser):
          ...
          date_of_birth = models.DateField()
          height = models.FloatField()
          ...
          REQUIRED_FIELDS = ['date_of_birth', 'height']

      Ещё надо переопределить некоторые методы и поля при необходимости (в доках написано какие)
    4. Надо создать кастомный менеджер, создающий пользователя. В нём надо реализовать методы create_user и create_superuser
    5. Надо создать новые формы для твоего пользователя и кастомизировать класс для админки, учитывающий твои новые поля
    6. ???
    7. PROFIT
    Ответ написан
    2 комментария