如何在Django中获取表单字段的ID

111

有没有办法在模板中获取字段的id?

在HTML中,我得到了:<input name="field_name" id="id_field_name"...

我知道可以使用{{ field.html_name }}获取名称,但是否有类似于获取id的方法?
或者我只能像这样获取它:id_{{ field.html_name }}

5个回答

196

您可以按照以下方式获取ID:

{{ field.auto_id }}

1
字段名称呢? - A.J.
13
@Clayton {{ field.html_name }} 翻译为中文是:{{ field.html_name }} - chucksmash

36
您也可以使用id_for_label方法:
{{ field.id_for_label }}

13

这并不适用于每个表单字段。

例如,{{ form.address.auto_id }} 可以使用,而 {{ form.address.auto_name }} 将不能使用。

但是,您可以使用 {{ form.address.html_name }} 获取相应的答案。

这里是文档


6
我认为你的意思是可以使用 "auto_id" 作为id,但必须使用 "html_name" 作为名称。可惜的是,我发现你的答案在回答问题时措辞令人困惑。 - Steve
这个答案对我没用,而Will上面的完美地解决了我的问题。我尝试了它们并排使用,并得到了即时反馈。 - eficker

2
从文档中可以看到,每个表单字段都有一个ID属性,设置为id_<field-name>,并由相应的标签引用。这很重要,以确保表单对辅助技术(如屏幕阅读器软件)可访问。您还可以自定义标签和ID生成方式。
因此,我想说的是,在模型中收集字段名称后使用id_field-name
以下是文档链接:链接

1
在Django 2中,您可以使用{{ field.id_for_label }}检索特定字段的ID。
这在这里有记录。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接