2016-05-16 2 views
0

Я хочу проверить, что набор форм пуст или нет. Если пусто, не создавайте новую запись в базе данных. Как мне это сделать?. Пожалуйста, помогите решить эту проблему, хотя я ввел required = False в form.py. Это мой код:Как разрешить пустые формы в formet django

class ExtraValueFormRight(forms.ModelForm): 
    label = forms.CharField(required=False, 
         widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Sub Title'})) 
    somevalue = forms.CharField(required=False, 
          widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Some Value'})) 

class Meta: 
    model = OrderHeader 
    fields = ('label', 'somevalue') 

HTML:

{{ formset.management_form }} 
{% for form in formset.forms %} 
    <div class='table-left'> 
     <table class='no_error'> 
       <div class="form-group"> 
        <div class="col-lg-12"> 
         {{ form.label }} 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="col-lg-12"> 
         {{ form.somevalue }} 
        </div> 
       </div> 
      </table> 
     </div> 
{% endfor %} 
+0

Обычно Джанго ModelFormSet делает именно то, что (они не будут создавать новый объект в БД, если пользователь не заполните форму). Можете ли вы показать свой код создания? (ваш код представления, я думаю). Обратите внимание, что в коде шаблона вам не хватает {{form.id}} для каждой формы в цикле набора форм –

ответ

1

Как вы используете ModelForm, свойства модели поля, которые вы используете в вас образуют также эффект проверки формы. Вы должны проверить, могут ли label и somevalue быть нулевыми или нет из ваших свойств модели. Если вы хотите указать значение по умолчанию для пустого поля ваших моделей, используйте в своей модели свойство default. Вы также можете переопределить метод save.

Для создания поля требуется,

class ExtraValueFormRight(forms.ModelForm): 
    label = forms.CharField(required=True, 
        widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Sub Title'})) 
    somevalue = forms.CharField(required=True, 
         widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Some Value'})) 

class Meta: 
    model = OrderHeader 
    fields = ('label', 'somevalue') 
+0

Я хочу проверить, что набор форм пуст или нет. Если пусто, не создавайте новую запись в базе данных. Как я могу это сделать? –

+0

в поле формы, установите значение = True. Это не позволит вам отправить пустую форму. –

Смежные вопросы