如何在formset django中允许空表单

时间:2016-05-16 07:30:54

标签: jquery python django

我想检查formset是否为空。如果为空,请不要在数据库中创建新记录。我怎样才能做到这一点?。尽管我在form.py中输入了required = False,但请帮助解决这个问题。这是我的代码:

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 %}

1 个答案:

答案 0 :(得分:1)

当您使用ModelForm时,您在表单中使用的模型字段的属性也将影响表单的验证。您应该检查模型属性中labelsomevalue是否为空。如果要为模型的空字段提供一些默认值,请在模型中使用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')