¿Cómo obtener la identificación del campo de formulario en Django?

99

¿Hay alguna forma de obtener la identificación de un campo en una plantilla?

En el HTML obtengo: <input name="field_name" id="id_field_name"...

Sé que puedo obtener el nombre {{ field.html_name }}, pero ¿hay algo similar para obtener la identificación?
¿O solo puedo conseguirlo así id_{{ field.html_name }}:?

user182945
fuente

Respuestas:

170

Puede obtener la identificación de esta manera:

{{ field.auto_id }}
Will Hardy
fuente
1
¿qué pasa con el nombre del campo?
AJ
12
@Clayton{{ field.html_name }}
chucksmash
23

También puede utilizar id_for_label:

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

Esto no funciona para todos los campos de formulario.

Por ejemplo, {{ form.address.auto_id }}funciona mientras {{ form.address.auto_name }}que no.

Sin embargo, puede utilizar {{ form.address.html_name }}para obtener la respuesta equivalente.

Aquí están los documentos

kkaehler
fuente
4
Creo que lo que quieres decir es que puedes usar "auto_id" para la identificación, pero tienes que usar "html_name" para el nombre. Lamentablemente, encuentro que su respuesta está redactada de manera confusa dada la pregunta.
Steve
Esta respuesta no funcionó para mí, y la anterior de Will funcionó perfectamente. Los probé consecutivamente con comentarios instantáneos.
eficker
1

En Django 2 puede recuperar la ID de un campo específico usando {{ field.id_for_label }}

Esto está documentado aquí .

LondonAppDev
fuente