Django CreateView не работает с пользовательской моделью auth

У меня есть простое приложение с очень простой пользовательской моделью авторизации и менеджером базы. Когда я пытаюсь создать пользователя с помощью CreateView, я не получаю никаких ошибок, и в базе данных не создается никаких записей о пользователе. Вот что у меня есть.

models.py:

from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
from django.contrib.auth.models import PermissionsMixin
from django.db import models


class AccountManager(BaseUserManager):

    def create_user(self, email, username, password, **other_fields):
        ....
        ....    
        email = self.normalize_email(email)
        user = self.model(username=username, email=email, **other_fields)
        user.set_password(password)
        user.save()

    def create_superuser(self, email, username, password, **other_fields):
        ....
        return self.create_user(email, username, password, **other_fields)


class UserAccount(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(max_length=60, unique=True)
    username = models.CharField(max_length=30, unique=True)
    first_name = models.CharField(max_length=30, blank=True)
    last_name = models.CharField(max_length=30, blank=True)
    date_joined = models.DateTimeField(default=timezone.now)
    last_login = models.DateTimeField(default=timezone.now)
    is_admin = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)

    objects = AccountManager()
    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email']

    def __str__(self):
        return self.username

Вот мой файл forms.py:

class CreateUserForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(CreateUserForm, self).__init__(*args, **kwargs)

        for visible in self.visible_fields():
            # If it's a checkbox, add form-check-input css class, else form-control class
            if visible.field.widget.__class__.__name__ == forms.CheckboxInput().__class__.__name__:
                visible.field.widget.attrs['class'] = 'form-check-input'
            else:
                visible.field.widget.attrs['class'] = 'form-control'

    class Meta:
        model = get_user_model()
        fields = ('username', 'email', 'password')

А вот как я вызываю форму в файле views.py:

from .forms import CreateUserForm

class CreateNewUser(CreateView):
    form_class = CreateUserForm
    template_name = 'Users/create_user.html'

У меня есть AUTH_USER_MODEL, указывающий на класс UserAccount в settings.py, и я могу создавать пользователей из панели /admin/, но когда я пытаюсь создать пользователя с помощью этого CreateView, он просто ничего не делает. Никаких сообщений об ошибках или успехе ни в консоли, ни во внешнем интерфейсе (я использую {{ form.errors }} для их поиска).

Я попробовал использовать функцию form_valid из CreateView, чтобы вручную сохранить объект, но это тоже не работает. Я также попробовал использовать метод save() в классе формы, но с ним возникла та же проблема. Другие сообщения, которые я встречал, похожие на мою проблему, тоже не помогли.

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