Django: Forcing admin users to enter at least one item in TabularInline

后端 未结 3 1154
死守一世寂寞
死守一世寂寞 2021-02-04 13:36

In my admin for an object Chair I have a TabularInline for an arbitrary number of Desk objects. I want every Chair to always

3条回答
  •  暖寄归人
    2021-02-04 14:14

    A generic FormSet clean() method for requiring at least one item:

        def clean(self):
            """Check that at least one service has been entered."""
            super(MyFormSet, self).clean()
            if any(self.errors):
                return
            if not any(cleaned_data and not cleaned_data.get('DELETE', False)
                       for cleaned_data in self.cleaned_data):
                raise forms.ValidationError('At least one item required.')
    

    This should work for plain formsets, model formsets and in-line model formsets.

提交回复
热议问题