Django crispy forms удаляет мои начальные значения из формы динамической модели

У меня есть модель для "страницы", которая имеет отношение "многие-ко-многим" через промежуточную модель с чем-то под названием "элементы". Я хочу сделать элементы редактируемыми из формы редактирования страницы. Поэтому я динамически генерирую ModelChoiceFields. Это работает хорошо (то есть все селекты имеют правильное начальное значение), пока я не применю render_crispy_form к форме в шаблоне Jinja2. Это устанавливает первое значение из выпадающего списка для всех элементов select, кроме 3-го, где в качестве начального значения устанавливается четвертый элемент.

Определение формы выглядит следующим образом:

class CreatePageForm(ModelForm):

    class Meta:

        model = Page

        fields = [
            'name',
        ]

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        instance = kwargs.get('instance')
        elements = Element.objects.all()
        if instance is not None:
            for page2element in kwargs.get('instance').pageelements_set.all():
                fieldname = f"element_{page2element.position}"
                self.fields[fieldname] = ModelChoiceField(elements, initial=page2element.element)

        self.helper = FormHelper()
        self.helper.form_method = 'post'
        self.helper.add_input(Submit('submit', 'Save'))
Вернуться на верх