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 в качестве базы данных.
Я понятия не имею, почему это происходит. Каждый ответ стека, который я пытался воспроизвести, дает мне другую ошибку:(
)