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.