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 и сделать нужную мне валидацию?

Вопрос более общего характера: Какой хороший способ делать такие валидации, когда проверка одной формы зависит от форм других объектов?

Вернуться на верх