有没有办法根据当前网址在静态导航栏模板内动态加载模板?

时间:2016-09-29 18:37:15

标签: python django redirect django-templates

嗨,我是django的新手,我正在努力建立一个网站。我的项目结构目前是这样的:

project/
    manage.py
    project/
        __init__.py
        settings.py
        urls.py
        myapps/
            __init__.py
            main/
                __init__,models,views,urls,etc...
                static/
                    main/
                templates/
                    main/  

我正在使用html5boilerplate,所有的css,javascript和图片都位于

myapps/main/static/main/

我的所有模板都在

myapps/main/templates/main/

拥有独特的名字。当用户点击主页面时,他们会加载html5bp附带的略微修改的index.html(重命名为boilerplate.html):

<!-- boilerplate.html -->
{% load static %}
...
<body>
    <!--[if lt IE 8]>
        ...
    <![endif]-->

    <!-- Add your site or application content here -->
    {% include "main/index.html" %}

    <script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
    <script src="{% static 'main/js/plugins.js' %}"></script>
    <script src="{% static 'main/js/main.js' %}"></script>

    <!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
    <script>
        ...
    </script>
</body>
...

我正在使用index.html作为我的静态侧边栏,但是我将它放在一个单独的模板中,以防我想要改变它,它将无聊的东西与有趣的东西分开(谁喜欢看bp代码? )。

<!-- index.html -->
<div id="sidenav" class="sidenav">
    ...
</div>

<div id="main">
    {% include /*SOMETHING HERE*/ %}
</div>

现在,每当用户被重定向到新页面时,我只想解析目标网址并更改包含标记以包含完全不同的模板。所以我想我必须将请求的URL传递给视图函数并从中返回一个模板,但我不确定如何执行此操作或是否可行。对不起,如果这是某个地方的重复问题,我确实看了,找不到任何相关内容。

1 个答案:

答案 0 :(得分:1)

你正在以错误的方式思考这个问题:你应该使用模板继承。您的视图应该呈现该URL的特定模板,但每个模板应该依次扩展index.html,它提供侧边栏和结构的其余部分。

相关问题