Django Admin 通用栈式内联表单集对空表单的验证
我在使用Django的通用堆叠内联表单集时遇到了问题。 我知道它会为内联创建一个表单集,我这里有一个通用模型,它被创建为内联,然后进一步使用。 我的问题是,由于Django库的代码,表单集的第一个表单是空的。 https://github.com/django/django/blob/master/django/forms/formsets.py#L164
好吧,如果我把这一行的值改成False,那么我的表单集就不允许为空了。
我只是想检查一下我的表单集中第一个表单是否是空的,如果是的话就返回。 这是我的代码: admin.py
class RequiredInlineFormSet(BaseFormSet):
def __init__(self,*args,**kwargs):
super(RequiredInlineFormSet,self).__init__(*args,**kwargs)
for form in self.forms:
form.empty_permitted=False
class ContactInline(generic.GenericStackedInline):
model=Contact
verbose_name='Contact Details '
fieldsets=(
('Basic Information',{
'classes': ('grp-collapse grp-open',),
'fields':('salutation','first_name','last_name','organization','office_phone','mobile_phone','home_phone','date_of_birth','email',
'secondary_email','email_opt_out','reference','do_not_call','notify_owner'
),
}),
('Other',{
'classes': ('grp-collapse grp-open',),
'fields':('notes','profile_picture','related_contact'),
}),
)
max_num=1
formset = RequiredInlineFormSet()
class LeadAdmin(admin.ModelAdmin):
inlines=(ContactInline,)
save_on_top = True
可惜,这个方法不行,我知道我哪里完全错了。 我只是需要一些帮助,确保第一个表单在表单集中不能留空,如果留空就返回一个错误。 我在Stack Overflow上搜索了很多,但真的找不到能帮我的东西。 任何帮助都将非常感谢。 非常感谢!
1 个回答
0
我成功搞定了这个问题,不过是通过JavaScript来实现的。正如我之前提到的,我需要在表单中进行验证,而我正是通过JavaScript完成了这个验证。所以现在它可以正常工作了。