Một template cha (base.html) định nghĩa khung chung và các "lỗ trống" bằng {% block ten %}{% endblock %}.
Template con mở đầu bằng {% extends "base.html" %} rồi override từng block.
django
{# base.html #}
<title>{% block title %}Site{% endblock %}</title>
<main>{% block content %}{% endblock %}</main>
{# page.html #}
{% extends "base.html" %}
{% block title %}Trang chủ{% endblock %}
{% block content %}...{% endblock %}Block nào con không định nghĩa thì giữ nội dung mặc định của cha.
- Trong block con, gọi
{{ block.super }}để chèn thêm vào nội dung cha thay vì thay hẳn. - Mục đích: tránh lặp layout (header/footer/nav) khắp các trang.