【问题标题】:Django Admin Generic Stacked Inline formset validation for empty form空表单的 Django Admin 通用堆叠内联表单集验证
【发布时间】:2014-08-17 06:18:16
【问题描述】:

我遇到了 Django Generic Stacked Inline Formset 的问题。 我知道它为内联创建了一个表单集,我在这里有一个通用模型,它被创建为内联,然后进一步使用。 我的问题是由于 django 库代码,表单集的第一个表单保持为空 https://github.com/django/django/blob/master/django/forms/formsets.py#L164

好的,如果我将此行的值更改为 False ,那么我的表单集不再允许为空。

我只是想检查我的表单集中的第一个表单是否为空白,如果是则返回。 这是我的代码: 管理员.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  

可悲的是,这不起作用,我在我知道的某个地方完全错了。 我只是需要帮助,这样我就不能将表单集中的第一个表单留空,如果这样做会返回错误。 我尝试搜索 SOF 很多,但真的找不到可以帮助我的东西。 任何帮助将不胜感激。 提前非常感谢。

【问题讨论】:

    标签: python django django-forms django-admin


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-11
      • 2016-03-15
      • 1970-01-01
      • 2011-09-17
      • 2011-05-17
      • 2013-09-03
      • 2023-04-09
      • 2011-06-02
      相关资源
      最近更新 更多