django формы: редактирование нескольких наборов связанных объектов в одной форме

Я пытаюсь сделать что-то, что должно быть очень распространено: добавить / отредактировать кучу связанных моделей в одной форме. Например:

Visitor Details:
Select destinations and activities:
    Miami  []   -  swimming [], clubbing [], sunbathing[]
    Cancun []   -  swimming [], clubbing [], sunbathing[]

Моими моделями являются Visitor, Destination и Activity, при этом у Visitor есть поле ManyToMany для Destination через посредническую модель VisitorDestination, в которой содержатся подробные сведения о действиях, которые необходимо выполнить в месте назначения (само по себе поле ManyToMany в Activity).

Visitor ---->(M2M though VisitorDestination) -------------> Destination
                                            |
                       activities            ---->(M2M)---> Activity  

Обратите внимание, что я не хочу входитьновый значения назначения / активности, простовыбирать из доступных в БД (но это вполне законное использование полей M2M, верно?)

Для меня это выглядит как очень распространенная ситуация (отношение «многие ко многим» с дополнительными деталями, представляющими собой поле FK или M2M в какой-либо другой модели), и это выглядит как наиболее разумное моделирование, но, пожалуйста, исправьте меня, если я ошибаюсь.

Я провел несколько дней в поисках Django docs / SO / googling, но не смог понять, как с этим справиться. Я попробовал несколько подходов:

Пользовательская форма модели для посетителя, где я добавляю поля с несколькими вариантами выбора для пункта назначения и действия. Это работает нормально, если Destination и Activity могут быть выбраны независимо, но здесь оникоррелированныйя хочу выбрать одно или несколько занятий длякаждый пункт назначения

С помощьюinlineformset_factory создать набор форм назначения / деятельности, сinlineformset_factory(Destination, Visitor), Это нарушается, потому что Посетитель имеет отношение M2M к назначению, а не FK.

Настройка простого набора форм, используяformset_factoryнапример,DestinationActivityFormSet = formset_factory(DestinationActivityForm, extra=2), Но как оформитьDestinationActivityForm? Я недостаточно изучил это, но это не выглядит многообещающе: я не хочу вводить пункт назначения и список действий, мне нужен список флажков с метками, установленными для пункта назначения / действий, которые я хочу выбрать, ноformset_factory вернул бы список форм с одинаковыми метками.

Я - новичок в django, так что, возможно, решение очевидно, но я нахожу, что документация в этой области очень слабая - если у кого-то есть несколько указателей на примеры использования форм / наборов форм, которые также были бы полезны

Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос