我希望在要包含的模板中设置默认行为。
我有一个 Django 模板系统不允许在模板中设置变量的问题(我已经阅读了 Django Philosophy,我理解它)。
这是我的示例问题:
我想包含一个模板来呈现新闻源:
template.html: ... {% include "_newsfeed.html" with slicing=":20" %} ...
我不想被迫输入
slicing
参数,并设置默认行为,比如说":20"
在我的
_newsfeed.html
,我想做(伪代码,它不起作用):_newsfeed.html: ... {% if not slicing %}{% with slicing=":20" %}{% endif %} {% for content in newsfeed_content|slice:slicing %} {# Display content #} {% endfor %} {% if not slicing %}{% endwith %}{% endif %}
相反,我最终在下面这样做,这不遵循 DRY 规则(并且不满足我!):
_newsfeed.html:
...
{% if not slicing %}{% with slicing=":20" %}
{% for content in newsfeed_content|slice:slicing %}
{# Display content #}
{% endfor %}
{% endwith %}{% else %}
{% for content in newsfeed_content|slice:slicing %}
{# Display content #}
{% endfor %}
{% endif %}
我应该怎么做 ?