2010-09-21 11 views
80

Existe-t-il un moyen d'obtenir l'ID d'un champ dans un modèle?Comment obtenir l'ID du champ de formulaire dans Django?

Dans le code HTML je reçois: <input name="field_name" id="id_field_name"...

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

Répondre

137

Vous pouvez obtenir l'ID comme ceci:

{{ field.auto_id }} 
+0

ce que sur le nom de domaine? – Clayton

+5

@Clayton '{{field.html_name}}' – chucksmash

8

Cela ne fonctionne pas pour tous les champs de formulaire. Par exemple, {{ form.address.auto_id }} fonctionne alors que {{ form.address.auto_name }} ne le sera pas.

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

Voici les docs

+4

Je pense que ce que vous voulez dire, c'est que vous pouvez utiliser "auto_id" pour l'id, mais vous devez utiliser "html_name" pour le nom. Malheureusement, je trouve que votre réponse est libellée de façon confuse compte tenu de la question. – Steve

+0

Cette réponse n'a pas fonctionné pour moi, et Will a travaillé parfaitement. Je les ai essayés dos à dos avec des réactions instantanées. – eficker

12

Vous pouvez également utiliser:

{{ field.id_for_label }}