连接http对象对象django

时间:2011-10-23 09:58:12

标签: python django django-templates django-views

我正在使用django开发一个网站,并希望保留页眉和页脚的通用模板。页眉和页脚的内容因登录用户而异。所以我可以使用以下方式:

    header=render_to_response('header.html',{....})
    footer=render_to_response('footer.html',{....})
    content=render_to_response('content.html',{....})
    return header+content+footer

2 个答案:

答案 0 :(得分:4)

苛刻,连接HttpResponse对象不是这样做的方法。 Django(我相信,合理)方法建议使用模板包括和继承。请查看{% block %}{% include %}{% extend %}模板标记here

在您的情况下,实现模板继承的方式如下:

base.html

<div> header code </div>
{% block content %}
    <div>Default content</div>
{% endblock content %}
<div> footer code </div>

my.template.html

{% extend 'base.html' %}
{% block content %}
  <div>My new content</div>
{% endblock content %}

答案 1 :(得分:1)

您应该查看template inheritance

基本上,这允许您在页眉和页脚中使用“基础”模板,您可以在其中定义(例如)“内容块”。

然后,您可以通过填写在Base模板中定义的(空或非)块来让其他模板“扩展”Base模板。

在Django中使用render_to_string并不是正确的方法。