Comment obtenir l'identifiant du champ de formulaire dans Django?

99

Existe-t-il un moyen d'obtenir l'ID d'un champ dans un modèle?

Dans le HTML, j'obtiens: <input name="field_name" id="id_field_name"...

Je sais que je peux obtenir le nom avec {{ field.html_name }}, mais y a-t-il quelque chose de similaire pour obtenir l'identifiant?
Ou puis-je seulement l'obtenir comme ceci id_{{ field.html_name }}:?

user182945
la source

Réponses:

170

Vous pouvez obtenir l'ID comme ceci:

{{ field.auto_id }}
Will Hardy
la source
1
qu'en est-il du nom du champ?
AJ
12
@Clayton{{ field.html_name }}
chucksmash
23

Vous pouvez également utiliser id_for_label:

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

Cela ne fonctionne pas pour tous les champs de formulaire.

Par exemple, ça {{ form.address.auto_id }}marche mais {{ form.address.auto_name }}pas.

Cependant, vous pouvez utiliser {{ form.address.html_name }}pour obtenir la réponse équivalente.

Voici les documents

kkaehler
la source
4
Je pense que vous voulez dire que vous pouvez utiliser "auto_id" pour l'identifiant, mais vous devez utiliser "html_name" pour le nom. Malheureusement, je trouve que votre réponse est formulée de manière confuse étant donné la question.
Steve
Cette réponse n'a pas fonctionné pour moi, et celle de Will ci-dessus a parfaitement fonctionné. Je les ai essayés dos à dos avec un retour instantané.
eficker
1

Dans Django 2, vous pouvez récupérer l'ID d'un champ spécifique en utilisant {{ field.id_for_label }}

Ceci est documenté ici .

LondonAppDev
la source