Django模板上下文没有显示

时间:2015-09-03 04:57:55

标签: python django django-templates django-views

您好我正在使用模板上下文变量,但无论我做什么,来自current_datetime视图函数的上下文都没有出现在home.html中,并且没有错误消息...我做错了什么?

#######view.py

def current_datetime(request):
    now = datetime.datetime.now()
    context = {
        "current_date": now
    }
    return render(request, "current_datetime.html",context)

def home(request):
    title = "My Database"
    context = {
        "template_title": title,
    }
    return render(request,"home.html",context)

#######current_datetime.html

Today is {{ current_date }}

#######home.html

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

{% include 'current_datetime.html' %}

....

1 个答案:

答案 0 :(得分:1)

它无效,因为currenct_date变量不在home视图的上下文中。

<强> DRY

不要重复自己。您尝试在模板中显示日期的方式,您必须将该变量传递给每个视图的上下文,这完全违反DRY原则。

使用{% now %}代码

不要将当前日期作为上下文变量发送,而是使用名为{% now %}的模板标记,该标记在模板中显示日期和时间。这是一个例子:

current_date.html

Today is {% now "jS F Y H:i" %}

将输出:

Today is is 3rd September 2015 08:28

以下是formatting the output of now tag

的更多信息