Jak uzyskać identyfikator pola formularza w Django?

99

Czy istnieje sposób, aby uzyskać identyfikator pola w szablonie?

W HTML otrzymuję: <input name="field_name" id="id_field_name"...

Wiem, że mogę uzyskać nazwę {{ field.html_name }}, ale czy jest coś podobnego do uzyskania identyfikatora?
Czy mogę to uzyskać tylko w ten sposób id_{{ field.html_name }}:?

user182945
źródło

Odpowiedzi:

170

Możesz uzyskać identyfikator w ten sposób:

{{ field.auto_id }}
Will Hardy
źródło
1
a co z nazwą pola?
AJ
12
@Clayton{{ field.html_name }}
chucksmash
23

Możesz również użyć id_for_label:

{{ field.id_for_label }}
Eren Süleymanoğlu
źródło
11

To nie działa dla każdego pola formularza.

Na przykład {{ form.address.auto_id }}działa, a {{ form.address.auto_name }}nie będzie.

Możesz jednak użyć, {{ form.address.html_name }}aby uzyskać równoważną odpowiedź.

Oto dokumenty

kkaehler
źródło
4
Myślę, że masz na myśli to, że możesz użyć „auto_id” jako identyfikatora, ale musisz użyć „html_name” jako nazwy. Niestety, biorąc pod uwagę to pytanie, twoja odpowiedź jest myląca.
Steve
Ta odpowiedź nie zadziałała dla mnie, a powyższa odpowiedź Willa działała doskonale. Wypróbowałem je jeden po drugim, uzyskując natychmiastową informację zwrotną.
eficker
1

W Django 2 możesz pobrać identyfikator określonego pola za pomocą {{ field.id_for_label }}

Jest to udokumentowane tutaj .

LondonAppDev
źródło