Menu
CoddyTech

Bộ lọc 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 15 trên 23.

Danh sách đồ uống nên cho biết có bao nhiêu món và hiển thị giá như $3.50, nhưng {{ drink.price }} in ra 3.5. Bộ lọc (filter) thay đổi giá trị khi mẫu hiển thị giá trị đó. Bộ lọc đứng sau |, một số bộ lọc nhận thêm đối số sau dấu hai chấm:

{{ rating|floatformat:1 }}     {# 4.7, when rating is 4.66 #}
{{ boxes|length }} box{{ boxes|pluralize:"es" }}

{# ... #} là chú thích trong mẫu, không bao giờ hiển thị. Đối số của floatformat cho biết số chữ số thập phân mà bộ lọc luôn hiển thị. length đếm số phần tử trong danh sách, còn pluralize thêm phần đuôi s, trừ khi bạn chỉ định phần đuôi khác, khi số lượng không chính xác là một: 3 boxes, 1 box.

Bộ lọc chỉ thay đổi nội dung được in ra, không bao giờ thay đổi dữ liệu trong view của bạn.

challenge icon

Thử thách

Dễ

Trong drinks.html, bên dưới <h1>, hãy thêm <p class="count"> có nội dung 4 drinks, hoặc 1 drink khi chỉ có một loại đồ uống. Trong <li> của mỗi loại đồ uống, sau tên, hãy thêm <span class="price"> với hai chữ số thập phân, chẳng hạn như $3.50.

Mở /drinks/: trang hiển thị 4 drinks, và Latte có giá $3.50.

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>
        {% for drink in drinks %}
            <li class="drink">
                {{ drink.name }}
                {% if drink.sold_out %}
                    <span class="sold-out">Sold out</span>
                {% endif %}
            </li>
        {% empty %}
            <li>No drinks today.</li>
        {% endfor %}
    </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