如何为每个 django 表单实例的表单字段分配唯一的 html id
how to assign unique html id to a form field for every django form instance
我的表格是
class AnswerForm(ModelForm):
class Meta:
model=Answers
fields=['answer']
widgets ={'answer': TinyMCE(attrs={'cols': 80, 'rows': 30}, mce_attrs={'mode':"textareas",}),}
在我看来,我正在创建一个 answerForm=AnswerForm()
形式的实例。在模板中,我在 for 循环
中有许多 answerForm 实例
<form action="/q/answer/" method="post" style="display:none;" class="answer_form" >
{% csrf_token %}
{# {{ context.answerForm.as_p }} #}
{# <textarea id="{{ forloop.counter }}">{{ context.answerForm.answer }}</textarea> #}
{{ context.answerForm.answer }}
<input type="hidden" name="q_id_a" id="q_id_a" value="{{ result.object.id }}">
<input type="submit" value="Submit" />
我的问题:
- 如何在视图中实例化 Django 表单以创建一个唯一的 HTML 字段答案 ID。有人问了类似的问题 here,建议使用 auto_id。
ContactForm(auto_id='id_for_%s')
如 django 表单文档中所述,修改了所有表单字段的 id 名称格式,但我仍然无法理解如何使 django 表单字段对于多个实例是唯一的。
- 由于表单生成的 html ID 不唯一,我遇到了问题。
如果您在一个页面上有多个表单实例,您应该使用表单集,它将负责为您创建唯一的 ID 和字段名称。
我的表格是
class AnswerForm(ModelForm):
class Meta:
model=Answers
fields=['answer']
widgets ={'answer': TinyMCE(attrs={'cols': 80, 'rows': 30}, mce_attrs={'mode':"textareas",}),}
在我看来,我正在创建一个 answerForm=AnswerForm()
形式的实例。在模板中,我在 for 循环
<form action="/q/answer/" method="post" style="display:none;" class="answer_form" >
{% csrf_token %}
{# {{ context.answerForm.as_p }} #}
{# <textarea id="{{ forloop.counter }}">{{ context.answerForm.answer }}</textarea> #}
{{ context.answerForm.answer }}
<input type="hidden" name="q_id_a" id="q_id_a" value="{{ result.object.id }}">
<input type="submit" value="Submit" />
我的问题:
- 如何在视图中实例化 Django 表单以创建一个唯一的 HTML 字段答案 ID。有人问了类似的问题 here,建议使用 auto_id。
ContactForm(auto_id='id_for_%s')
如 django 表单文档中所述,修改了所有表单字段的 id 名称格式,但我仍然无法理解如何使 django 表单字段对于多个实例是唯一的。 - 由于表单生成的 html ID 不唯一,我遇到了问题。
如果您在一个页面上有多个表单实例,您应该使用表单集,它将负责为您创建唯一的 ID 和字段名称。