Django 基模板日期渲染

0 投票
4 回答
820 浏览
提问于 2025-04-17 05:39

我刚接触Django,有个简单的问题,希望你们能帮我解决。我有一个基础模板,长这样:

<!doctype html>
<html>
<head>
<title>{% block title %} {% endblock %}</title>
<link type="text/css" rel ="stylesheet" href="style.css" />
<script type="text/javascript" src="jquery.js"> </script>
</head>
<body>
{% block navmenu %} 
{% endblock %}
{% block content %}
{% endblock %}
{% block footer %}
{% endblock  %}
</body>
</html>

这个模板被一个中间模板扩展,中间模板的结构是这样的:

{% extends "base.html" %}
{% block navmenu %}
<ul>
<li>Home</li>
<li>Programming</li>
<li>About</li>
<li>Contact</li>
</ul>
{% endblock %}
{% block footer %}
<h4>Copyright &#169, {{year}} Mel Gibson </h4>
{% endblock %}

这两个模板看起来都很简单,但我的视图会渲染一个不同的模板,这个模板又扩展了中间模板。我在这里遇到了一个小问题。这个模板里有一个叫做footer的部分,里面有一个变量叫year。这个年份应该在整个页面中保持不变,所以如果我每次都把这个变量放到上下文中,就显得有些多余。那么,有什么简单的方法可以让这个年份只传递一次呢?我能不能在HTML文件里直接引入日期时间对象,然后在同一个模板里生成年份来显示呢?

4 个回答

1

Django有一个官方支持的解决方案来处理这种情况:RequestContext

2

这就是上下文处理器的作用。

撰写回答