Django模板系统中如何重写部分block?
假如模板的继承关系是这样的:
base.html中:
|--head
|--body
|--header
|--boyer
|--main
|--aside
|--footer
body的部分都是block。
index.html继承(extends)base.html,但是只想用base.html中的其余部分,而把main重写。要怎么实现?
Django中已有的extends和block重写似乎解决不了这类问题,我在index.html中,
{% extends 'base.html' %}
{% block main %}
......
{% endblock %}
和,
{% extends 'base.html' %}
{% block bodyer.main %}
......
{% endblock %}
都无法解决。
特此求教高手!
Django版本:1.7
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据后来的经历,自己回答一下。
Django貌似不支持多次重写,也就是C重写了B,而B重写了A,再C中是无法获取A中的block再把它重写掉的,所以上面的问题应该是无解。
但是要实现同样的功能,可以把中间的B去掉,直接把A作为父模板,在C中重写,而不是经过B再组织一层。虽然这样做在逻辑上没有原先的明确。
自己的一点认识,可能有不足之处,望指正~
可以看看
{{ block.super }}