Menu
CoddyTech

Vòng lặp trong mẫu

Thuộc phần Kiến thức cơ bản về Django trong hành trình Django của Coddy. Bài học 13 trên 23.

Quán cà phê có một trang mới, /drinks/. View truyền tất cả đồ uống vào template dưới tên drinks, nhưng danh sách trên trang lại trống. Thẻ {% for %} lặp lại HTML một lần cho mỗi phần tử. Một trang liệt kê các bàn còn trống:

<ul>
{% for table in free_tables %}
    <li>Table {{ table }} is free.</li>
{% empty %}
    <li>Every table is taken.</li>
{% endfor %}
</ul>

Nó hoạt động giống vòng lặp for của Python, với table lần lượt nhận giá trị của từng phần tử. Template không có quy tắc thụt lề, vì vậy {% endfor %} dùng để đóng vòng lặp. Phần {% empty %} không bắt buộc chỉ hiển thị khi danh sách trống.

Vòng lặp chỉ thấy các tên trong context, như drinks, chứ không thấy các biến trong views.py.

challenge icon

Thử thách

Dễ

Trong drinks.html, lặp qua drinks bên trong <ul>. Mỗi món đồ uống có một <li class="drink"> chứa tên món. Nếu không có món nào, hãy hiển thị <li>No drinks today.</li> thay thế.

Nhấn Chạy: /drinks/ liệt kê bốn món đồ uống.

Tự làm thử

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Our Drinks</title>
</head>
<body>
    <h1>Our Drinks</h1>
    <ul>
        <!-- one <li class="drink"> per drink -->
    </ul>
</body>
</html>

Tất cả bài học trong Kiến thức cơ bản về Django

Tự luyện tập: Playground Django