Получение переменных имени набора форм в шаблонах django

Я отправляю набор форм в свой шаблон. Я хочу добавить к нему некоторый стиль, поэтому мне нужно получить доступ к его переменным. Я взял следующий код из документации, где они выводят форму и у нее есть некоторые атрибуты, среди которых name="form-0-title".

for form in formset:
    print(form.as_table())

<tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" value="Django is now open source" id="id_form-0-title"></td></tr>
...

Поскольку я хочу стилизовать свои формы, мне нужно дать входам имя, чтобы знать, как обращаться с ними в бэкенде. Когда я делаю следующее в шаблонах

{{ proficiency_form.management_form }}
{% for form in proficiency_form %}
    {{form.title.name}}
{% endfor %}

Я получаю title, title, ... вместо id_form-0-title, id_form-1-title, .... Как я могу получить правильное название в шаблонах?

Вы можете легко получить имя ввода ваших полей следующим образом:

{{ proficiency_form.management_form }}
{% for form in proficiency_form %}
    {{form.title.html_name}}
{% endfor %}

Если вы хотите получить id метки, вы можете рассмотреть такой подход:

{{ proficiency_form.management_form }}
{% for form in proficiency_form %}
    {{form.title.id_for_label}}
{% endfor %}

Подробнее об этом читайте в официальных Docs.

Вы можете найти похожий (почти дублирующий) вопрос здесь.

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