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 }}:?

Réponses:


170

Vous pouvez obtenir l'ID comme ceci:

{{ field.auto_id }}

1
qu'en est-il du nom du champ?
AJ

12
@Clayton{{ field.html_name }}
chucksmash


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


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 .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.