python - Django模板系统中如何重写部分block?
ringa_lee
ringa_lee 2017-04-17 13:43:20
[Python讨论组]

假如模板的继承关系是这样的:
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

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
黄舟

根据后来的经历,自己回答一下。
Django貌似不支持多次重写,也就是C重写了B,而B重写了A,再C中是无法获取A中的block再把它重写掉的,所以上面的问题应该是无解。
但是要实现同样的功能,可以把中间的B去掉,直接把A作为父模板,在C中重写,而不是经过B再组织一层。虽然这样做在逻辑上没有原先的明确。
自己的一点认识,可能有不足之处,望指正~

天蓬老师

可以看看 {{ block.super }}

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号