如何为每个django表单实例的表单字段分配唯一的html id

时间:2016-05-19 14:34:00

标签: django django-forms django-tinymce

我的表单是

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。在django表单文档中提到的ContactForm(auto_id='id_for_%s')修改了所有表单字段的id名称格式,但我仍然无法理解如何使django表单字段对于多个实例是唯一的。
  • 由于表单生成的非唯一html id,我遇到了问题。

1 个答案:

答案 0 :(得分:4)

如果页面上有多个表单实例,则应使用表单集,该表单集将负责为您创建唯一的ID和字段名称。