ormas @django: edición de varios conjuntos de objetos relacionados en una sola forma

Estoy tratando de hacer algo que debería ser muy común: agregar / editar un montón de modelos relacionados en una sola forma. Por ejemplo

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

Mis modelos son Visitor, Destination y Activity, con Visitor que tiene un campo ManyToMany en Destination a través de un modelo intermediario, VisitorDestination, que tiene los detalles de las actividades a realizar en el destino (en sí mismo un campo ManyToMany en Activity).

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

Nota que no quiero ingresarnuev valores de destino / actividad, soloescoge de los disponibles en la base de datos (pero ese es un uso perfectamente legítimo de los campos M2M ¿verdad?)

Para mí, esto parece una situación extremadamente común (una relación de muchos a muchos con detalles adicionales que son un campo FK o M2M en otro modelo), y este parece el modelo más sensible, pero corríjame si me equivoco .

Pasé unos días buscando documentos de Django / SO / google pero no he podido encontrar la manera de lidiar con esto. Intenté varios enfoques:

Formulario de modelo personalizado para visitante, donde agrego campos de opción múltiple para destino y actividad. Eso funciona bien si Destino y Actividad se pueden seleccionar de forma independiente, pero aquí estáncorrelacionad, es decir, quiero elegir una o varias actividades paracad destino

Utilizandoinlineformset_factory para generar el conjunto de formularios de destino / actividades, coninlineformset_factory(Destination, Visitor). Esto se rompe porque el visitante tiene una relación M2M con el destino, en lugar de un FK.

Personalizar un conjunto de formularios simple, usandoformset_factory, p.ejDestinationActivityFormSet = formset_factory(DestinationActivityForm, extra=2). Pero cómo diseñarDestinationActivityForm? No he explorado esto lo suficiente, pero no parece muy prometedor: no quiero escribir el destino y una lista de actividades, quiero una lista de casillas de verificación con las etiquetas establecidas en el destino / actividades que quiero para seleccionar, pero laformset_factory devolvería una lista de formularios con etiquetas idénticas.

Soy un novato completo con django, así que tal vez la solución sea obvia, pero encuentro que la documentación en esta área es muy débil, si alguien tiene algunos consejos sobre ejemplos de uso de formularios / conjuntos de formularios que también serían útiles

¡Gracias

Respuestas a la pregunta(6)

Su respuesta a la pregunta