关于django模板和全局变量

时间:2014-02-09 11:22:55

标签: django templates variables global

我有一个skeleton.html模板,我的博客中有一个档案盒。所以我必须更新我的视图中的每个函数或有一个简单的方法来做到这一点?就像一个全局变量需要最新的和最新的帖子一年,然后我将在我的模板中使用?

当我扩展另一个模板时:

{% extends "base.html" %}
{% load static %}

{% block title %}{{ title }}{% endblock %}

{% block css %}<link rel="stylesheet" href="{% static "css/style.css" %}"/>{% endblock %}

{% block contentRight %}
<div id="search">
    <h2>Search</h2>
    <form action="#" method="POST">
        <input type="text" name="searchbox"/>
        <input type="submit" name="submit" value="Search"/>
    </form>
</div>
<div id="archives">
    <h2>Archives</h2>
    <ul>
        <li><a href="#">2013</a></li>
        <li><a href="#">2012</a></li>
        <li><a href="#">2011</a></li>
    </ul>
</div>
{% endblock %}

标题在我的views.py主页函数中,当我创建另一个html文件并扩展索引并传递标题块时,它没有加载任何内容... sry我的英语不好和noobish问题〜我在django的新内容

1 个答案:

答案 0 :(得分:1)

您可以定义自己的 RequestContext processor,在years_processor中查询您想要的年份:

def years_processor(request):
    return {'years': range(2013, 2010, -1)}

将其添加到TEMPLATE_CONTEXT_PROCESSORS,然后直接在每个模板中使用years

<ul>
    {% for year in years %}
        <li><a href="#">{{ year }}</a></li>
    {% endfor %}
</ul>

请注意您应该使用 render或明确传递上下文。