Как получить идентификатор поля формы в Django?

99

Есть ли способ получить идентификатор поля в шаблоне?

В HTML я получаю: <input name="field_name" id="id_field_name"...

Я знаю, что могу получить имя {{ field.html_name }}, но есть ли что-нибудь подобное для получения идентификатора?
Или я могу получить только так id_{{ field.html_name }}:?

user182945
источник

Ответы:

170

Получить ID можно так:

{{ field.auto_id }}
Уилл Харди
источник
1
как насчет имени поля?
AJ
12
@Clayton{{ field.html_name }}
chucksmash
23

Вы также можете использовать id_for_label:

{{ field.id_for_label }}
Эрен Сулейманоглу
источник
11

Это работает не для всех полей формы.

Например {{ form.address.auto_id }}работает, пока {{ form.address.auto_name }}не будет.

Однако вы можете использовать, {{ form.address.html_name }}чтобы получить эквивалентный ответ.

Вот документы

Kkaehler
источник
4
Я думаю, вы имеете в виду, что вы можете использовать «auto_id» для идентификатора, но вы должны использовать «html_name» для имени. К сожалению, я нахожу ваш ответ запутанным, учитывая вопрос.
Стив
Этот ответ не сработал для меня, и Уилл выше работал отлично. Я перепробовал их, получив мгновенный отклик.
eficker
1

В Django 2 вы можете получить идентификатор для определенного поля, используя {{ field.id_for_label }}

Это описано здесь .

LondonAppDev
источник