Получить значение name attr для набора форм с соответствующим префиксом и индексом формы набора форм

Я вручную отображаю значения modelformset_factory в шаблоне Django с помощью приведенного ниже фрагмента. Один из входов использует тип select, и я заполняю опции, используя другое контекстное значение, переданное из представления после внешних вызовов API, так что нет никакой связи модели между данными и формой, которую я пытаюсь отобразить.

view

my_form = modelformset_factory(MyModel, MyModelForm, fields=("col1", "col2"), extra=0, min_num=1, can_delete=True,)

шаблон

{{ my_form.management_form }}
{% for form in my_form %}
    <label for="{{ form.col1.id_for_label }}">{{ form.col1.label }}</label>
    {{ form.col1 }}
    
    <label for="{{ form.col2.id_for_label }}">{{ form.col2.label }}</label>
        <select id="{{ form.col2.id_for_label }}" name="{{ form.col2.name }}">
              <option disabled selected value> ---- </option>
              {% for ctx in other_ctx %}
                  <option value="{{ ctx.1 }}">{{ ctx.2 }}</option>
              {% endfor %}
        </select>
{% endfor %}

Заполнение опции выбора other_ctx представляет собой список[кортеж]

Я пытаюсь получить значение name для ввода col2 с помощью {{ form.col2.name }}, но вместо col2 возвращается только form-0-col2. Я могу добавить значение form-0- к {{ form.col2.name }}, но мне интересно, если:

  1. Я могу сделать все вышеперечисленное автоматически? Я предполагаю, что набор форм должен знать имена начальных наборов форм с соответствующим индексом набора форм, поступающим из представления.
  2. .
  3. Есть ли способ включить опции выбора в начальный набор форм, который отправляется в шаблон, чтобы я мог просто использовать {{ form.col2 }}?

Только что увидел, что я могу использовать form-{{ forloop.counter0 }}-{{ form.col2.name }} в качестве альтернативы, если автоматическое получение не работает.

Я думаю, что вам нужно имя form.col2.html_name - docs

Это имя, которое будет использоваться в HTML-атрибуте name виджета. При этом учитывается префикс формы.

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