Django - 在组件中划分html文件

时间:2014-01-27 12:04:09

标签: html django separation-of-concerns

我刚刚熟悉Django模板继承,但在这种情况下,这对我没有帮助。 我有以下模板结构:

-templates
   -home
      -base.html
      -right_menu.html
      -top_menu.html
      -left_bottom_menu.html

base.html文件:

<!DOCTYPE html>    
{% load static %}    
<html>
    <head>
        <title>Hot or Not</title>            
    </head>    
    <body>
        <div id="mainMenuPanel" class="topMenu">
            {% block top_menu %}{% endblock %}
        </div> 
        <div class="leftPanel">
            <div class="leftBottomMenu">
                {% block left_bottom_menu %}{% endblock %}
            </div>
        </div>        
        <div id="divMenu" class="rightPanel">
            {% block right_menu %}{% endblock %}            
        </div>
    </body>
</html>

我有3个菜单 - 顶级菜单,左下方菜单,右侧菜单。但是加载base.html我也想加载这些菜单。与模板继承类似,我想将这些菜单保存在其他文件中。但是,模板继承需要重定向到这些html文件(例如重定向到right_menu.html)并且只加载它们的块(它就像其他html文件的母版页一样)。如何在Django中进行这种分离?

1 个答案:

答案 0 :(得分:4)

如果你把东西放在

{% block right_menu %}{% end block %}

喜欢说

{% block right_menu %}{% include 'right_menu.html' %}{% endblock %}

默认情况下会加载它,除非你在子模板中覆盖它。