Django 和 ModelForm 上的字段集

标签 django forms fieldset

我知道您可以在 django 中为管理员助手指定字段集。但是,我找不到任何对 ModelForms 有用的东西。只是一些我无法使用的补丁。我错过了什么吗?有没有一种方法可以实现类似字段集的功能,而无需在模板上的适当标记中手动写出每个字段。

理想情况下,我希望遍历一组 BoundFields。但是,在我的 ModelForm 末尾做这样的事情:

    fieldsets = []
    fieldsets.append(('Personal Information',
                      [username,password,password2,first_name,last_name,email]),) # add a 2 element tuple of string and list of fields
    fieldsets.append(('Terms & Conditions',
                      [acceptterms,acceptprivacy]),) # add a 2 element tuple of string and list of fields

失败,因为我的数据结构中包含的项目是原始字段,而不是 BoundFields。看起来 BoundFields 是动态生成的……这让我很难过。我可以创建自己的 forms.Form 子类,其中包含一个字段集的概念(即使是一个不向后兼容的粗略的......这只是为了我自己的项目),如果是这样,你能给出任何指示吗?我不想弄乱 Django 代码。

最佳答案

我认为this snippet做你想要的。它为您提供了一个 Form 子类,允许您以声明方式将表单分割为字段集,并在模板中循环访问它们。

更新:该片段已成为 django-form-utils 的一部分

关于Django 和 ModelForm 上的字段集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/518966/

相关文章:

Django:将其转换为 DetailView - 使用 URL 中的两个参数的 View 函数

forms - Symfony2 嵌入式实体

forms - 如何通过在 Powershell 中按 Enter 键来调用按钮单击

css - 无法将字段集的内容居中

jquery - 带有文本的 HTML5 框架 - 不是字段集/图例

django - 我可以用 Django 渲染 VueJS 吗?

css - 我的 Django 元素没有加载 Bootstrap 字形

javascript - 提交按钮在执行 1 个功能后不会发布数据

css - 列数在 chrome 的字段中不起作用

django - 自定义 Django 用户身份验证表单