Django Додати головний шаблон
Тег extends
На попередніх сторінках ми створили два шаблони, один для переліку всіх учасників, а інший для деталей про учасника.
Шаблони містять набір HTML-коду, який є однаковим для обох шаблонів.
Django надає спосіб створення "батьківського шаблону", який можна включити на всі сторінки, щоб робити те саме на всіх сторінках.
Почніть зі створення шаблону під назвою master.html
з усіма необхідними елементами HTML:
Master
my_tennis_club/members/templates/master.html
:
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
Ви бачите тег блоку Django всередині елемента <title>
та елемента <body>
?
Вони є заповнювачами, які говорять Django замінити цей блок вмістом з інших джерел.
Змінити шаблони
Тепер два шаблони (all_members.html
і details.html
) можуть використовувати цей шаблон master.html
.
Це робиться шляхом включення головного шаблону з тегом {% extends %}
і вставленням блока title
і блока content
:
Members (учасники)
my_tennis_club/members/templates/all_members.html
:
{% extends "master.html" %}
{% block title %}
My Tennis Club - List of all members
{% endblock %}
{% block content %}
<h1>Members</h1>
<ul>
{% for x in mymembers %}
<li><a href="details/{{ x.id }}">{{ x.firstname }} {{ x.lastname }}</a></li>
{% endfor %}
</ul>
{% endblock %}
Виконати приклад »
Details (Деталі)
my_tennis_club/members/templates/details.html
:
{% extends "master.html" %}
{% block title %}
Details about {{ mymember.firstname }} {{ mymember.lastname }}
{% endblock %}
{% block content %}
<h1>{{ mymember.firstname }} {{ mymember.lastname }}</h1>
<p>Phone {{ mymember.phone }}</p>
<p>Member since: {{ mymember.joined_date }}</p>
<p>Back to <a href="/members">Members</a></p>
{% endblock %}
Виконати приклад »
Якщо ви виконали всі кроки на своєму комп’ютері, ви можете побачити результат у своєму браузері: 127.0.0.1:8000/members/
.
Якщо сервер не працює, його потрібно запустити знову за допомогою команди runserver
:
py manage.py runserver