Может кто-нибудь, пожалуйста, помогите мне выяснить способ достижения следующего (см. Ниже фрагменты) в шаблонах Django? Я знаю, что вы не можете использовать более одного расширения, но я новичок в django, и я не знаю правильного синтаксиса для чего-то подобного. Я хочу, чтобы иметь возможность сделать это, чтобы я мог использовать мой макет вложенных div для CSS-причин, не набирая их так и каждый раз и рискуя опечатками. На словах я хочу, чтобы шаблон страницы расширил мой файл base.html, а затем использовал html-фрагменты содержимого динамического шаблона (т. Е. Шаблон для циклов или других логических устройств шаблонов, а не только переменную контекста, которую я установил из моего контроллера представления).Как использовать фрагменты html-блока с динамическим содержимым внутри шаблона django, который расширяет другой файл?
редактировать: Я хочу, чтобы иметь возможность отображать произвольное содержание произвольным образом в каждом столбце. Например, я хотел бы иметь возможность отображать ul изображений в одном столбце, а затем на той же странице показывать другой набор столбцов, отображающих таблицу данных. Вот пример того, что я напечатал: example of alot of random columns
Я понимаю, что пример картина имеет весь текст генерируется из выходного Джанго веб-тестера, но каждый coulmn должен быть в состоянии иметь случайный контент. И они должны быть гнездовыми. Возможно ли это с использованием языка шаблонов django по умолчанию?
------------------------------------------------------------
base.html
------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>{% block title %}Title{% endblock %}</title>
</head>
<body>
<div class="wrapper">
<div class="header">
This is the common header
</div>
<div class="nav">
This is the common nav
</div>
{% if messages %}
<div class="messages">
<ul>
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
<div class="content">
{% block content %}Page Content{% endblock %}
</div>
<div class="footer">
This is the common footer
</div>
</div>
</body>
</html>
------------------------------------------------------------
columnlayout2.html
------------------------------------------------------------
<div class="twocol container2">
<div class="container1">
<div class="col1">
{% block twocol_col1 %}{% endblock %}
</div>
<div class="col2">
{% block twocol_col2 %}{% endblock %}
</div>
</div>
</div>
------------------------------------------------------------
columnlayout3.html
------------------------------------------------------------
<div class="threecol container3">
<div class="container2">
<div class="container1">
<div class="col1">
{% block threecol_col1 %}{% endblock %}
</div>
<div class="col2">
{% block threecol_col2 %}{% endblock %}
</div>
<div class="col3">
{% block threecol_col3 %}{% endblock %}
</div>
</div>
</div>
</div>
------------------------------------------------------------
page.html
------------------------------------------------------------
{% extends "base.html" %}
{% block content %}
{% extends "columnlayout2.html" %}
{% block twocol_col1 %}twocolumn column 1{% endblock %}
{% block twocol_col2 %}twocolumn column 2{% endblock %}
{% extends "columnlayout3.html" %}
{% block threecol_col1 %}threecol column 1{% endblock %}
{% block threecol_col2 %}threecol column 2{% endblock %}
{% block threecol_col3 %}threecol column 3{% endblock %}
{% endblock %}
------------------------------------------------------------
page.html output
------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Title</title>
</head>
<body>
<div class="wrapper">
<div class="header">
This is the common header
</div>
<div class="nav">
This is the common nav
</div>
<div class="content">
<div class="twocol container2">
<div class="container1">
<div class="col1">
twocolumn column 1
</div>
<div class="col2">
twocolumn column 2
</div>
</div>
</div>
<div class="threecol container3">
<div class="container2">
<div class="container1">
<div class="col1">
threecol column 1
</div>
<div class="col2">
threecol column 2
</div>
<div class="col3">
threecol column 3
</div>
</div>
</div>
</div>
</div>
<div class="footer">
This is the common footer
</div>
</div>
</body>
</html>
Звучит как [теги включения] (http://docs.djangoproject.com/en/1.1/howto/custom-template-tags/#inclusion-tags) - это то, что вам нужно. –