Ver*_*non 15 django django-templates
在Django的模板系统中,如果我有一个块,我想使用if语句使其可选,我该怎么做?
我在尝试这个:
{% if val %}{% block title %}Archive {{ foo }}{% endblock %}{% endif %}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.有没有办法做到这一点,使给定值(在这种情况下空)块没有被发出,基本模板使用原始值?
编辑:让我更具体一点,以便更容易回答.
我有一个页面,每页有10个条目.然后用户可以去到下一个页面,看到了未来十年的项目.对于每个进一步的网页,他们走了,过去的第一,我想有标题标签说类似"存档1"或"归档10",但如果他们回到原来的页面,它不再存档,并应刚去的基本模板已经给原网站的标题.
Jam*_*mie 23
我遇到了一个与我正在研究的项目类似的问题.以下是我使用{{block.super}}从父块中提取默认值的方法:
我的父模板包含:
{% block title %}Default Title{% endblock %}
Run Code Online (Sandbox Code Playgroud)
我的孩子模板包含:
{% block title %}
{% if new_title %}{{ new_title }}{% else %}{{ block.super }}{% endif %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
*注意:如果您打算在HTML标题标记中使用结果,则可能需要将代码包装在{%spaceless%} {%endspaceless%}中.
(看起来Jordan Reiter在回复之前在原问题的评论中发布了相同的解决方案.)
据我所知,blocks是占位符在子模板中被"覆盖".它们必须在"编译时"定义,而不是在"运行时"定义.
至于你的具体问题,为什么不根据页码修改标题(假设你使用分页)?像这样的东西:
{% block title %}
{% ifequal page 1 %}Current{% else %}Archive {{ page }}{% endifequal %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5847 次 |
| 最近记录: |