【问题标题】:Django, unique IDs for form fieldsDjango,表单字段的唯一 ID
【发布时间】:2011-05-16 09:07:49
【问题描述】:

我有一个简单的 Django 表单:

class CommentForm(forms.Form):
    comment = forms.CharField(max_length=2000, required=True)
    post_id = forms.CharField(max_length=2000, widget=forms.HiddenInput, required=True)
    parent_id = forms.CharField(max_length=2000, widget=forms.HiddenInput, required=True)

现在我想在我的页面上多次打印此表单 - 我是通过模板标签来完成的,因此每次都会创建新表单。问题是,我得到所有字段的相同 ID。

我知道前缀,但我不想更改字段名称,因为所有表单都有一个处理程序,仅用于设置唯一 ID。

所以我的问题:

  • 如果我想多次输出一个表单而不更改字段名称,有没有办法让 Django 设置唯一 ID?
  • 如果没有,有没有办法让 Django 根本不输出 ID?

【问题讨论】:

  • 你看过 Django 表单集吗?它们允许您在一个页面上管理同一表单的多个实例:docs.djangoproject.com/en/dev/topics/forms/formsets
  • @pastylegs,谢谢你的链接。我不能使用表单集,因为每个表单都有不同的初始参数。
  • 您应该能够通过遍历表单来使用单独的初始数据填充表单集中的表单。看看一些例子。表单集的文档似乎不如其他表单集,但它们非常强大

标签: django django-forms


【解决方案1】:

当您创建该表单的新实例时,您可以使用 auto_id 参数控制自动 ID 的生成方式

看看这里(搜索 auto_id):

http://docs.djangoproject.com/en/dev/ref/forms/api/#configuring-html-label-tags

【讨论】:

  • 正是我想要的。非常感谢!
猜你喜欢
  • 2017-11-27
  • 2019-03-09
  • 2018-04-21
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2011-04-09
  • 2013-05-31
  • 2014-10-10
相关资源
最近更新 更多