Django Admin Generic Stacked Inline formset验证空表单

时间:2014-06-26 11:51:30

标签: python django django-forms django-admin

我遇到了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很多,但真的找不到可以帮助我的东西。 任何帮助都会有很大的帮助。 非常感谢提前。

1 个答案:

答案 0 :(得分:0)

我能够完成它,但通过Javascript。 如上所述,我的要求是在formset中验证表单,我可以通过javascript完成。 因此它有效。