Wie erhalte ich die ID des Formularfelds in Django?

99

Gibt es eine Möglichkeit, die ID eines Felds in einer Vorlage abzurufen?

Im HTML bekomme ich: <input name="field_name" id="id_field_name"...

Ich weiß, dass ich den Namen mit bekommen kann {{ field.html_name }}, aber gibt es etwas Ähnliches, um die ID zu bekommen?
Oder kann ich es nur so bekommen : id_{{ field.html_name }}?

user182945
quelle

Antworten:

169

Sie können die ID wie folgt erhalten:

{{ field.auto_id }}
Will Hardy
quelle
1
Was ist mit dem Feldnamen?
AJ
12
@ Clayton{{ field.html_name }}
Chuckmash
23

Sie können auch verwenden id_for_label:

{{ field.id_for_label }}
Eren Süleymanoğlu
quelle
11

Dies funktioniert nicht für jedes Formularfeld.

Zum Beispiel {{ form.address.auto_id }}funktioniert solange {{ form.address.auto_name }}nicht.

Sie können jedoch verwenden {{ form.address.html_name }}, um die entsprechende Antwort zu erhalten.

Hier sind die Dokumente

kkaehler
quelle
4
Ich denke, was du meinst ist, dass du "auto_id" für die ID verwenden kannst, aber du musst "html_name" für den Namen verwenden. Leider finde ich, dass Ihre Antwort angesichts der Frage verwirrend formuliert ist.
Steve
Diese Antwort hat bei mir nicht funktioniert, und Wills oben hat perfekt funktioniert. Ich habe sie mit sofortigem Feedback hintereinander ausprobiert.
Eficker
1

In Django 2 können Sie die ID für ein bestimmtes Feld mit abrufen {{ field.id_for_label }}

Dies ist hier dokumentiert .

LondonAppDev
quelle