django内联表单集之间的验证

时间:2013-08-30 15:19:09

标签: django validation django-forms django-admin inline-formset

我很惊讶以前没有问过这个问题(或者至少我还没有找到)。我有一个带有两个内联表单集的ModelAdmin,并希望在它们之间进行交叉验证。

class PublicationGroupInlineFormSet(BaseInlineFormSet):
    def clean(self):
        # Here I validate the PublicationGroupInlineFormSet 

class PublicationGroupInline(StackedInline):
    model = PublicationGroup
    formset = PublicationGroupInlineFormSet

class PublicationProjectInlineFormSet(BaseInlineFormSet):
    def clean(self):
        # Here I validate the PublicationProjectInlineFormset 

class PublicationProjectInline(StackedInline):
    model = PublicationProject
    formset = PublicationProjectInlineFormSet

class PublicationAdmin(ModelAdmin):
    inlines = (PublicationProjectInline, PublicationGroupInline)

admin.site.register(Publication, PublicationAdmin)

问题很简单,答案可能不是。如何在两种表格集之间进行交叉验证?谢谢!

1 个答案:

答案 0 :(得分:0)

幸运的是,有另一位用户有同样的需求并且已经破解了解决方案https://stackoverflow.com/a/2746735

基本上,解决方案包括从admin.ModelAdmin覆盖add_view和change_view,以包括表单集之间的交叉验证。