рендеринг даты в базовом шаблоне django - PullRequest
0 голосов
/ 04 ноября 2011

Я очень новичок в Джанго, и у меня есть простая проблема.Надеюсь, что вы поможете мне решить это.У меня есть такой базовый шаблон:

<!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.Это должно быть постоянным на всей странице, поэтому, если я продолжу передавать эту переменную в контексте, это будет избыточность, каков самый простой способ визуализации этой даты, чтобы она пропускалась только один раз через код?Могу ли я импортировать объект datetime в сам файл html и построить поле года в том же шаблоне для отображения.

Ответы [ 4 ]

2 голосов
/ 04 ноября 2011
2 голосов
/ 04 ноября 2011

Это то, для чего нужны контекстные процессоры .

1 голос
/ 04 ноября 2011

Django имеет поддерживаемое решение для этого варианта использования: RequestContext

1 голос
/ 04 ноября 2011

Дайте мне посмотреть, правильно ли я понял: год всегда должен быть текущим?Не просто статический текст, потому что тогда вы бы написали его, не так ли?

Если вы не хотите передавать его как переменную, вы можете создать пользовательский тег шаблона для использования вместо.

Или вы можете создать базовый класс представлений, который наследует все другие классы представлений и который добавляет обычно используемые переменные шаблона, например, год.

...