严格 MVC 的一件非常烦人的事情是您可以在模板中进行最小的处理。虽然这通常是一个很好的做法,但在这种情况下,它会妨碍:
- 我在很多对象的查询集上创建了一个 for 循环并显示一些属性;
- 属性是属性,进行繁重的处理(我不想触发它们两次)。
- 最后我需要显示这些属性的总值。
我现在必须在视图中求和一次,然后重新循环(并再次调用属性)以显示。我可以通过在视图中循环一次并缓存结果来改进它,但是我得到更多的代码只是为了绕过这个限制,并且我使用了更多的内存。
在项目的这个阶段,这没什么大不了的。性能根本不是问题。但我真的很想知道是否有解决方案。
我最好的选择是编写一个模板标签来完成这项工作,但这太麻烦了:-) 你知道有人已经这样做了吗?
例如:
理想情况下,它应该是这样的:
{% for object in object_list %}
- {% sum_in_and_print object.property total %}
{% endfor %}
total {{ total }}
这将显示:
- 2
- 3
- 1
total 6