Django
Beginner
1 min read
Django Template Language Basics
Example
{# templates/blog/post_list.html #}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Blog Posts</title>
</head>
<body>
<h1>Latest Posts</h1>
{% if posts %}
<ul class="post-list">
{% for post in posts %}
<li class="post-item {% if forloop.first %}first{% endif %}">
<h2>
<a href="{% url 'post-detail' pk=post.pk %}">
{{ post.title }}
</a>
</h2>
<p class="meta">
By {{ post.author.get_full_name|default:post.author.username }}
on {{ post.published_at|date:"N j, Y" }}
</p>
<p>{{ post.body|truncatewords:30 }}</p>
</li>
{% if not forloop.last %}<hr>{% endif %}
{% endfor %}
</ul>
{% else %}
<p>No posts found.</p>
{% endif %}
{# Pagination #}
{% if page_obj.has_other_pages %}
<nav>
{% if page_obj.has_previous %}
<a href="?page={{ page_obj.previous_page_number }}">Previous</a>
{% endif %}
<span>Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}</span>
{% if page_obj.has_next %}
<a href="?page={{ page_obj.next_page_number }}">Next</a>
{% endif %}
</nav>
{% endif %}
</body>
</html>
Related Resources
Django Reference
Complete tag & property list
Django How-To Guides
Step-by-step practical guides
Django Exercises
Practice what you've learned
More in Django