用Django中的html文件内容替换部分模板

时间:2014-01-17 12:58:43

标签: python html django django-templates

我有一个问题,用另一个内容替换django内置的部分网站。 我有像

这样的代码
<section id='main_page'>
    <div id="main_div">
        <--! include kek.html content here -->
    </div>
</section>

我想用另一个html文件中的html替换这个评论。 我试过了

def home(request):
    return HttpResponse(render_to_string(
            'index.html',{'bla':kek.html},
        ))

而在index.html中是

<section id='main_page'>
    <div id="main_div">
        {{ bla }}
    </div>
</section>

但是,它似乎没有这样的方式。我是django和python的新手,我找不到任何解决方案。

1 个答案:

答案 0 :(得分:2)

不,甚至不会运行(kek.html未在视图中定义,因此它是一个NameError。)

您可以在模板中使用{% include %}标记:

<section id='main_page'>
    <div id="main_div">
        {% include 'kek.html' %}
    </div>
</section>

你应该真正做Django教程,它解释了模板的工作原理(等等)。

在评论后修改

在这种情况下,您应该将include的名称视为变量并将其从视图中传递出去:

{% include template_to_include %}

...

return render_to_response(
        'index.html', {'template_to_include': 'kek.html'},
)

注意引号。