我正在閱讀django權威指南,並在第4章中介紹了模板繼承。看起來,我沒有做盡可能優雅的事情,因爲我不得不復制一些代碼,以便在調用子視圖時顯示上下文。這裏是views.py中的代碼:django模板繼承和上下文
def homepage(request):
current_date = datetime.datetime.now()
current_section = 'Temporary Home Page'
return render_to_response("base.html", locals())
def contact(request):
current_date = datetime.datetime.now()
current_section = 'Contact page'
return render_to_response("contact.html", locals())
在每個函數中都必須包含current_date行似乎是多餘的。
這裏是主頁電話基本HTML文件:
<html lang= "en">
<head>
<title>{% block title %}Home Page{% endblock %}</title>
</head>
<body>
<h1>The Site</h1>
{% block content %}
<p> The Current section is {{ current_section }}.</p>
{% endblock %}
{% block footer %}
<p>The current time is {{ current_date }}</p>
{% endblock %}
</body>
</html>
和子模板文件:
{% extends "base.html" %}
{% block title %}Contact{% endblock %}
{% block content %}
<p>Contact information goes here...</p>
<p>You are in the section {{ current_section }}</p>
{% endblock %}
如果調用子文件的時候,在這裏我不包括CURRENT_DATE線該變量應該顯示爲空白。