【发布时间】:2013-10-22 10:19:22
【问题描述】:
在我的模板中,我想在不同的表中使用 for 循环显示模型的所有字段。每个表都有不同数量的字段。我唯一知道的是字段的顺序。
我的模特:
class Act(models.Model):
#table_1
my_field=models.IntegerField(max_length=4, blank=False, null=False)
bar=models.IntegerField(max_length=2, blank=False, null=False)
...
#table_2
test=models.CharField(max_length=2, blank=True, null=True, default=None)
my_new_field=models.CharField(max_length=2, blank=True, null=True, default=None)
blabla=models.CharField(max_length=2, blank=True, null=True, default=None)
...
#table_3
foo=models.IntegerField(max_length=2, blank=False, null=False)
...
我的模板:
<table id="table_1">
<!-- display my_field and bar -->
{% for field in form %}
{% endfor %}
</table>
<table id="table_2">
<!-- display test, my_new_field and blabla -->
{% for field in form %}
{% endfor %}
</table>
<table id="table_3">
<!-- display foo -->
{% for field in form %}
{% endfor %}
</table>
有可能吗?
【问题讨论】:
-
你可以使用form.fieldname和form.fieldname每次手动输入
-
如果有数百个字段怎么办?
-
你要在模板中使用数百个字段吗,还有其他方法可以使用外键连接的三种不同模型
-
第一个表:10 个字段,第二个:15,第三个:35。创建不同的模型是一个好的/可接受的解决方案吗?
-
如果您知道计数,您也可以使用 slice 选项....,{% for field in form|slice:":10" %} 即使不是,它也会显示多达 10 个字段为您的问题提供最佳解决方案,但提示您完成工作