Вложенные формы в Django

Занимаюсь созданием системы тестирования (тест с вопросами и вариантами ответов) на Django. Архитектура БД на данный момент выглядит следующим образом:

TestName(id: pk, test_name : str)
TestQuestion(id: pk, question_title : str, test : foreign_key_to(TestName))
QuestionVariant(id: pk, variant_title: str, is_correct : bool, question : foreign_key_to(TestQuestion))

Таким образом уровень вложенности моделей - 2.

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

1

Использовал inlineformset_factory, но это помогло мне лишь при уровне вложенности - 1 (без добавления вариантов). То есть я могу добавлять тест и к нему вопросы, но для реализации ещё и вариантов к каждому вопросу - нужно какое-то дополнение. Наткнулся на статью, где предлагалось переопределить BaseInlineFormSet и в функции add_fields дополнительно задавать атрибут nested, в который помещать вложенный FormSet, но проблема в том, что FormSet, в который помещается данный атрибут содержит не один вопрос, а все вопросы, и по итогу ассоциация вариантов идёт не с одним конкретным вопросом, а с целым формсетом, содержащим большое их количество.

Буду очень благодарен за наводки на правильное архитектурное решение.

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