Как исправить «NOT NULL ограничение не удалось», когда я отправляю данные для этого поля из формы Django - PullRequest
0 голосов
/ 26 марта 2019

У меня есть сценарий использования приложения 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

Как мне это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...