Пользовательский пользователь Django не сохраняется

Итак, я пытаюсь создать пользователя с большим количеством полей. Я следовал руководству о том, как создать пользовательскую модель пользователя, наследуя от базового класса пользователя, а затем создавая менеджера пользователя. Я попросил одного из моих прошлых профессоров взглянуть на это, и он не смог найти ничего, что могло бы помешать сохранению.

class UserManager(BaseUserManager):
    def create_user(self, email, password=None):
        """
        Creates and saves a User with the given email and password.
        """
        if not email:
            raise ValueError('Users must have an email address')

        user = self.model(
            email=self.normalize_email(email),
            
        )

        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_staffuser(self, email, password):
        """
        Creates and saves a staff user with the given email and password.
        """
        user = self.create_user(
            email,
            password=password,
        )
        user.staff = True
        user.save(using=self._db)
        return user

    def create_superuser(self, email, password):
        """
        Creates and saves a superuser with the given email and password.
        """
        user = self.create_user(
            email,
            password=password,
        )
        user.staff = True
        user.admin = True
        user.save(using=self._db)
        return user




class User(AbstractBaseUser):
    email = models.EmailField(
        verbose_name='email address',
        max_length=255,
        unique=True,
    )
    is_active = models.BooleanField(default=True)
    staff = models.BooleanField(default=False) # a admin user; non super-user
    admin = models.BooleanField(default=False) # a superuser
    Full_Name = models.CharField(max_length=200)
    industry_type = models.CharField(max_length=200)
    presenter = models.BooleanField(default=False)
    reciept = models.ImageField()
    paper = models.FileField(null=True)
    guest = models.IntegerField(default=1)


    # notice the absence of a "Password field", that is built in.

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = [] # Email & Password are required by default.

    def get_full_name(self):
        # The user is identified by their email address
        return self.email

    def get_short_name(self):
        # The user is identified by their email address
        return self.email

    def __str__(self):
        return self.email

    def has_perm(self, perm, obj=None):
        "Does the user have a specific permission?"
        # Simplest possible answer: Yes, always
        return True

    def has_module_perms(self, app_label):
        "Does the user have permissions to view the app `app_label`?"
        # Simplest possible answer: Yes, always
        return True

    @property
    def is_staff(self):
        "Is the user a member of staff?"
        return self.staff

    @property
    def is_admin(self):
        "Is the user a admin member?"
        return self.admin
    
    objects = UserManager()

Затем я изменил AUTH_USER_MODEL в settings.py и создал форму, которая должна регистрировать новых пользователей, я застрял на этом на некоторое время, мой код соответствует тому, что было в учебнике. Я пробовал некоторые вещи, я добавил все поля в функцию сохранения формы, думая, что модель не создается или не сохраняется, потому что в ней отсутствуют необходимые поля, потому что они не передаются ей.

    paper = forms.FileField(required=False)

    class Meta:
        model = User
        fields = ("Full_Name", "email", "password1", "password2", "industry_type", "reciept", "guest", "presenter","paper")

    def save(self, commit=True):
        user = super(NewUserForm, self).save(commit=False)
        user.email = self.cleaned_data['email']
        user.Full_Name = self.cleaned_data['Full_Name']
        user.industry_type = self.cleaned_data['industry_type']
        user.reciept = self.cleaned_data['reciept']
        user.gust = self.cleaned_data['guest']
        user.presenter = self.cleaned_data['presenter']
        user.paper = self.cleaned_data['paper']
        if commit:
            user.save()
        return user

Форма отображается, я вижу, что модель пользователя переключилась на мою пользовательскую модель, но когда я использую форму, она ничего не делает. Я не получаю никаких ошибок в консоли или терминале и не могу понять, где я мог ошибиться. Я понимаю, что проще было бы связать всю эту информацию с пользователем по умолчанию с помощью внешнего ключа, но для данного приложения практичнее, чтобы эта информация находилась в одной модели. Дайте мне знать, если вам нужна дополнительная информация. Спасибо!

Вернуться на верх