Django подтверждает ModelInlines в родительской модели
Предположим, у нас есть 2 модели django:
class File:
# Comma separated list of column names
unique_columns = models.CharField(max_length=200)
class Column:
file = models.ForeignKey(File, on_delete=models.CASCADE)
name = models.CharField(max_length=50)
В файле admin.py
class ColumnInline(nested_admin.NestedTabularInline):
model = Column
class FileAdmin(admin.ModelAdmin):
inlines = [ColumnInLine]
Что я хочу достичь
При сохранении этих моделей на странице Admin я хочу проверить, установлены ли файлы unique_columns
как Columns
связанные с этим File
(путем проверки существования связанного объекта с таким именем)
Что я пробовал
Очевидно, что метод
clean()
наFile
не будет работать, так как он сохраняется доColumn
.Переопределение
.save_formset
наFileAdmin
, однако я не совсем понимаю, как получить доступ кColumn
формам
Вопрос Как этого добиться? Возможно ли это с помощью пользовательской формы? Или я могу переопределить save_formset
и сделать нужную мне валидацию?
Вопрос более общего характера: Какой хороший способ делать такие валидации, когда проверка одной формы зависит от форм других объектов?