У меня есть сценарий использования приложения django, в котором мне нужно сохранить форму с некоторой проверкой.Все работает нормально, пока я не нажму кнопку отправки.Ошибка целостности возникает в поле last_salary.
Но что странно, так это то, что я передаю данные для этого поля в форме, и я даже подтвердил это, отметив request.POST
в представлении.
Я не мог придуматьмного попробовать, так как это поведение довольно странно.Я попытался заполнить даже поля, которые не обязательны, чтобы увидеть, сработало ли это, но это не так (очевидно?).Следует отметить, что я использую sqlite db.
Моя модель выглядит следующим образом:
class EmployeeTestModel(models.Model):
full_name = models.CharField(max_length=50)
post_code = models.CharField(max_length=8, blank=True)
last_salary = models.PositiveIntegerField()
uk_resident = models.BooleanField()
resume_file = models.FileField(
upload_to='media/',
validators=[FileExtensionValidator(allowed_extensions=['pdf'])]
)
На мой взгляд:
class EmployeeFormView(FormView):
form_class = EmployeeTestForm
template_name = 'form_app/form.html'
success_url = reverse_lazy('submission_success')
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect(self.success_url)
else:
return render(request, self.template_name, {'form': form})
Со всеми необходимымизаполненные поля, я ожидаю, что она успешно сохранит форму, но при этом возникает ошибка:
django.db.utils.IntegrityError: Сбой ограничения NOT NULL: form_app_employeetestmodel.last_salary
Как мне это исправить?