IntegrityError at / null value in column "last_name" violates not-null constraint

У меня есть веб-приложение, которое включает аутентификацию. У меня есть форма, но когда я ввожу свои учетные данные и нажимаю submit, я получаю ошибку: IntegrityError at /accounts/professor_register/ null value in column "last_name" violates not-null constraint.

view

from .forms import ProfessorSignupForm
class ProfessorSignup(CreateView):
    model = User
    form_class = ProfessorSignUpForm
    template_name = 'authentication/dubai.html'

    def form_valid(self, form):
        user = form.save()
        login(self.request, user)
        return redirect('/')

form

class ProfessorSignUpForm(UserCreationForm):
    first_name = forms.CharField()
    last_name = forms.CharField()
    phone = PhoneNumberField()

    class Meta(UserCreationForm.Meta):
        model = User

    @transaction.atomic
    def save(self):
        user = super().save(commit=False)
        user.is_professor = True
        user.is_staff = True
        user.save()
        professor = Professor.objects.create(user=user)
        professor.first_name = self.cleaned_data.get('first_name')
        professor.last_name = self.cleaned_data.get('last_name')
        professor.username = self.cleaned_data.get('username')
        professor.email = self.cleaned_data.get('email')
        professor.password = self.cleaned_data.get('password')
        professor.save()
        return user

модели

class User(AbstractUser):
    is_pupil = models.BooleanField(default=False)
    is_instructor = models.BooleanField(default=False)


class Professor(models.Model):
    user = models.OneToOneField(User, on_delete = models.CASCADE, primary_key = True)
    first_name = models.CharField(max_length=20, null=False)
    last_name = models.CharField(max_length=30, null=True)
    username = models.CharField(max_length=30, unique=True, null=True)
    email = models.EmailField(unique=True, null=False)
    password = models.CharField(max_length=60, null=False)
    phone_number = PhoneNumberField(null=False, blank=False, unique=True)

Я использую postgresql в качестве базы данных.

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

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