在我的模板中,我想在不同的表格中使用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>
有可能吗?
答案 0 :(得分:0)
感谢Anto Vinish,我找到了一个可接受的解决方案:使用slice
。
<table id="table_1">
<!-- display my_field and bar -->
{% for field in form|slice:":10" %}
{% endfor %}
</table>
<table id="table_2">
<!-- display test, my_new_field and blabla -->
{% for field in form|slice:"10:25" %}
{% endfor %}
</table>
<table id="table_3">
<!-- display foo -->
{% for field in form|slice:"25:" %}
{% endfor %}
</table>
如果在模型中添加字段,则必须计算并更新数字,但至少您没有其他任何可更改的内容。没有额外的模型,没有额外的代码,所以没有额外的查询。
解决!