我遇到了Django Generic Stacked Inline Formset的问题。 我知道它为内联创建了一个formset,我在这里有一个通用模型,它已被创建为内联,然后进一步使用。 我的问题是,由于django库代码,formset的第一种形式保持为空 https://github.com/django/django/blob/master/django/forms/formsets.py#L164
好的,如果我去将此行的值更改为False,那么我的formset不再允许为空。
我只想检查我的formset中的第一个表单是否为空,如果是,则返回。 这是我的代码: 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
可悲的是,这不起作用,我知道我完全错了。
我只是需要帮助,以便我不能将formset中的第一个表单留空并且如果这样做则返回错误。
我试着搜索SOF很多,但真的找不到可以帮助我的东西。
任何帮助都会有很大的帮助。
非常感谢提前。
答案 0 :(得分:0)
我能够完成它,但通过Javascript。 如上所述,我的要求是在formset中验证表单,我可以通过javascript完成。 因此它有效。