Django Template Language (DTL) — простой язык шаблонов для генерации HTML.
Базовый синтаксис
<!-- Переменные: {{ variable }} -->
<h1>{{ task.title }}</h1>
<p>{{ user.get_full_name }}</p>
<!-- Теги: {% tag %} -->
{% if user.is_authenticated %}
<p>Привет, {{ user.username }}!</p>
{% else %}
<p>Войдите для доступа</p>
{% endif %}
<!-- Фильтры: {{ variable|filter }} -->
<p>{{ task.created_at|date:"d.m.Y" }}</p>
<p>{{ text|truncatewords:20 }}</p>
Цикл for
<ul>
{% for task in tasks %}
<li>{{ forloop.counter }}. {{ task.title }}</li>
{% empty %}
<li>Задач нет</li>
{% endfor %}
</ul>
Переменные цикла:
- forloop.counter — номер (с 1)
- forloop.counter0 — номер (с 0)
- forloop.first, forloop.last — первый/последний
Условия
{% if task.status == 'done' %}
<span>✓ Выполнено</span>
{% elif task.status == 'in_progress' %}
<span>⏳ В процессе</span>
{% else %}
<span>○ В очереди</span>
{% endif %}
Наследование (extends/block)
<!-- base.html -->
{% block title %}Мой сайт{% endblock %}
{% block content %}{% endblock %}
<!-- page.html -->
{% extends 'base.html' %}
{% block title %}Задачи — Мой сайт{% endblock %}
{% block content %}
<h1>Задачи</h1>
{% endblock %}
URL-теги
<a href="{% url 'task-list' %}">Все задачи</a>
<a href="{% url 'task-detail' pk=task.pk %}">{{ task.title }}</a>
Загрузка тегов
{% load static %}
<link rel="stylesheet" href="{% static 'css/style.css' %}">
{% load i18n %}
{% trans "Задачи" %}
💬 Комментарии (0)
Комментариев пока нет
Станьте первым, кто поделится мнением об этой статье!