Django:对表单字段进行分组
Posted
技术标签:
【中文标题】Django:对表单字段进行分组【英文标题】:Django: Grouping form fields 【发布时间】:2021-08-31 02:29:13 【问题描述】:我想对不同的表单域进行分组,如下例所示: forms.py
a = SelectField()
a.group = "Testgroup1"
b = CheckboxField()
b.group = "Testgroup1"
c = IntegerField()
c.group = "Testgroup2"
d = IntegerField()
d.group = "Testgroup2"
e = CheckboxField()
e.group = "Testgroup3"
f = IntegerField()
f.group = "Testgroup3"
然后在模板中是这样的:
% for group in form %
group
% for field in form %
<div> field </div>
% endfor %
% endfor %
我想要这样的结果: enter image description here
有人能给我一点建议吗? 提前谢谢你。
【问题讨论】:
【参考方案1】:这里有几个解决方案:
最简单的做法是:
<div id="group1">
form.a
form.b
</div>
<div id="group2">
form.c
form.d
</div>
如果您要处理很多字段,那么您可能希望在模板中进行过滤。这里有几个选项:
令人讨厌的是,Django 在设计上不包含 filter
过滤器作为模板语言的一部分,但您可以按以下方式添加方法:
How do I perform query filtering in django templates
注意事项,Jinja is supported by Django out of the box 和 allows filtering like you would want。
请不要忘记您将按 field.field.group
进行排序。
【讨论】:
是的,我只是做了一个小例子。我认为这将是 20 个组和每组 10 个字段。 更新了我的答案以上是关于Django:对表单字段进行分组的主要内容,如果未能解决你的问题,请参考以下文章