Пример обработки formset
В данном примере мы имеем доступ к управляющей (главной) форме и к его инлайновым формам. Это позволяет нам проводить более сложные "совместные" проверки, например:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.forms import BaseInlineFormSet
from django.contrib import admin
from django.core.exceptions import ValidationError
class GalleryPictureInlineFormSet(BaseInlineFormSet):
def clean(self):
if self.management_form.data.get('is_thumbs_hidden', None) == 'on' and not any([form.cleaned_data.get('is_use_preview_window') for form in self.forms]):
raise ValidationError('Выберите опцию либо "Отображать миниатюры галереи", '
'либо "Использовать в окне предпросмотра" в конкретном изображении')
class GalleryPictureInline(admin.TabularInline):
formset = GalleryPictureInlineFormSet
model = GalleryPicture
extra = 0
class Gallery(admin.ModelAdmin):
...
inlines = (GalleryPictureInline, )