Предварительно заполненные отношения "многие ко многим" в форме Django

Я работаю над приложением, в котором участвуют кандидаты. Во время подачи заявки каждый кандидат должен ответить на несколько открытых вопросов (например, "Почему вы хотите присоединиться к компании?"). Вопросы, задаваемые кандидату, не предопределены в приложении, я хочу, чтобы администратор мог создавать или изменять вопросы, которые будут задаваться будущим кандидатам.

Для этого я реализовал следующие модели :

class Candidate(models.Model):
    # (...)
    answers = models.ManyToManyField('Question', through='Answer')

class Question(models.Model):
    text = models.CharField(max_length=200)

class Answer(models.Model):
    candidate = models.ForeignKey(Candidate, on_delete=models.CASCADE)
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    text = models.CharField(max_length=100)

Идея состоит в том, чтобы хранить вопросы, созданные администратором в модели, и хранить ответы, данные кандидатом, в промежуточной таблице Answer

Затем я создал несколько форм для моделей :

class CandidateForm(forms.ModelForm):
    class Meta:
        model = Candidate
        fields = ['first_name', 'last_name', 'birth_date', 'email']


class AnswerForm(forms.ModelForm):
    class Meta:
        model = Answer
        fields = ['question', 'text']


AnswerInlineFormset = forms.inlineformset_factory(Candidate, Answer, form=AnswerForm)

И я использую CreateView для отображения формы:

class CandidateFormView(CreateView):
    template_name = 'candidates/candidate.html'
    form_class = CandidateForm
    
    def get_context_data(self, **kwargs):
        context = super(CandidateFormView, self).get_context_data(**kwargs)

        context['answers_formset'] = AnswerInlineFormset
        return context

На данный момент форма отображает только поля из модели Candidate (имя, фамилия и так далее), а набор форм с Question выбирает поле со всеми доступными вопросами и пустым текстовым полем для ответа. Это ожидаемо, набор форм не заполнен никакими данными, поэтому он просто отображает поля, чтобы пользователь мог определить отношения.

what I get now

Конечно, я не хочу, чтобы пользователь выбирал, на какой вопрос он хочет ответить! Поэтому я хочу предварительно заполнить набор форм вопросами из базы данных (и использовать их как метку вместо поля, но я думаю, что эта часть не слишком сложна)

Что-то вроде этого (с заполнением вопросов из модели Question):

expected result

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