@maniacus26

Как в Django запретить создание пустых записей?

Приветствую!

Есть форма на Django, в ней 10 полей из которых 5 обязательны к заполнению, и если их не заполнить то нажатие на кнопку submit сообщит о том что обязательные поля не заполнены, при этом рядом есть кнопа "вернуться" и если оставить форму не заполненной и "вернуться", то в БД появляется пустая запись, где все обязательные поля - пустые.
Почему такое происходит ?
С другими аналогичными моделями такого не происходит

Django 2.0.7
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
netpastor
@netpastor
Python developer
Эти 5 обязательных полей на уровне базы сделай обязательными
А счас без кода вьюхи не ясно что там

Теперь интересно все же как с таким кодом запретить создавать запись в БД если поля не заполнены

На уровне модели у полей убери все default, blank=True, null=True
Тогда сама база не даст тебе создать запись
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@maniacus26 Автор вопроса
class UNew(CreateView):
    model = U
    fields = '__all__'
    def get_form(self, form_class=None):
        form = super().get_form(form_class)
        form.helper = FormHelper()
        form.helper.add_input(Submit('submit', 'Create', css_class='btn-primary'))

        form.fields['ZAY_NUM'].label = "Номер заявления"
        form.fields['ZAY_TYPE'].label = "Тип заявления"
#-	далее описание кучи аналогичных полей       
#------ Причина записи в БД

        obj = form.save(commit=False)
        obj.author += self.request.user.username
        obj.save()

        return form


Спасибо за отзывы. В запарке не заметил блока (последние три строки) который мне всю малину портит.
Тут идет сохранение пользователя под которым заполняется форма в БД.

Теперь интересно все же как с таким кодом запретить создавать запись в БД если поля не заполнены, или добавить автора альтернативным спсобом.
Или
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы