Como obter o id do campo do formulário no Django?

99

Existe alguma maneira de obter o id de um campo em um modelo?

No HTML eu obtenho: <input name="field_name" id="id_field_name"...

Eu sei que posso obter o nome com {{ field.html_name }}, mas há algo semelhante para obter a id?
Ou só posso obter assim id_{{ field.html_name }}:?

user182945
fonte

Respostas:

170

Você pode obter o ID assim:

{{ field.auto_id }}
Will Hardy
fonte
1
e o nome do campo?
AJ de
12
@Clayton{{ field.html_name }}
chucksmash
23

Você também pode usar id_for_label:

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

Isso não funciona para todos os campos do formulário.

Por exemplo, {{ form.address.auto_id }}funciona enquanto {{ form.address.auto_name }}não.

No entanto, você pode usar {{ form.address.html_name }}para obter a resposta equivalente.

Aqui estão os documentos

kkaehler
fonte
4
Acho que o que você quer dizer é que você pode usar "auto_id" para o id, mas você tem que usar "html_name" para o nome. Infelizmente, acho que sua resposta foi formulada de forma confusa, dada a pergunta.
Steve
Essa resposta não funcionou para mim, e a de Will acima funcionou perfeitamente. Eu tentei back to back com feedback instantâneo.
eficker
1

No Django 2 você pode recuperar o ID de um campo específico usando {{ field.id_for_label }}

Isso está documentado aqui .

LondonAppDev
fonte