我在Django中使用modelformset_factory
来让用户填写未知数量的字段。
我已经填写了必填字段,但是在HTML呈现中,Django并未将required
添加到HTML元素中,在线查看这似乎是一个常见问题,但是我没有看到任何适用于此内容的有效答案我想要,我觉得这应该很简单。
如何使Django将所需标签添加到Formset的适当HTML元素?
class ItemForm(forms.ModelForm):
class Media:
js = (formset_js_path,)
class Meta:
model = PurchaseOrderItems
fields = ['name','vendor','quantity','price','description']
labels = {
'name': 'Item',}
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
# self.fields['description'] .widget.attrs['required'] = 'required'
self.empty_permitted = False
self.fields['description'] = forms.CharField(
required=False,label='Description',)
def clean(self):
"""
:return:
"""
cleaned_data = super().clean()
# print(cleaned_data)
ItemFormSet = modelformset_factory(
PurchaseOrderItems,form=ItemForm,extra=0,min_num=1,validate_min=True,can_delete=True,)
这是为名称字段呈现的HTML,在我的模型中肯定没有required
,因此,如果提交此表单,则由于空值而导致DB错误:
<input type="text" name="form-0-name" maxlength="150" class="form-control" id="id_form-0-name">