Estoy leyendo la guía definitiva de django y estoy en el Capítulo 4 sobre herencia de plantillas. Parece que no estoy haciendo algo tan elegante como debería ser posible ya que tengo que duplicar algún código para que aparezca el contexto al llamar a la vista secundaria. Aquí está el código en views.py:herencia de plantilla django y contexto
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())
Parece redundante tener que incluir la línea current_date en cada función.
Aquí está el archivo html base que inicio Las llamadas:
<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>
y un archivo de plantilla hija:
{% 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 %}
Si no incluyo la línea fecha_actual cuando se llama al archivo secundario, donde esa variable debería aparecer está en blanco.