Menu
CoddyTech

Częściowe szablony

Część sekcji API JSON ścieżki Django w Coddy. Lekcja 14 z 19.

Skrypt nie zawsze potrzebuje JSON. Po dodaniu zadania może poprosić serwer o gotowy element <li> tego zadania i dodać go do listy. Szablon już wyświetla ten wiersz, więc serwer powinien użyć go ponownie.

Django 6.0 wprowadziło części szablonu: nazwany fragment szablonu, który można też renderować samodzielnie. Owiń go w {% partialdef %}; inline wyświetla go również w tym miejscu, przy każdym przebiegu pętli. Widok renderuje tylko fragment, podając nazwę szablonu, # i nazwę części:

{% partialdef cart-total inline %}
    <strong>{{ cart.total }}</strong>
{% endpartialdef %}
return render(request, "shop/cart.html#cart-total", {"cart": cart})

Kontekst musi zawierać to, co odczytuje fragment — tutaj cart. Strona i fragment korzystają z tego samego znaczników, więc nie mogą się od siebie różnić.

challenge icon

Wyzwanie

Średni

Wyświetl jeden wiersz z /tasks/ osobno:

  • W pliku list.html utwórz z elementu <li> fragment o nazwie task-row, który nadal będzie renderowany dla każdego zadania.
  • Utwórz widok task_row(request, pk), który renderuje tylko ten fragment i zwraca błąd 404, gdy zadanie nie istnieje.
  • Dodaj trasę "tasks/<int:pk>/row/" o nazwie task_row.

Naciśnij Uruchom, a następnie otwórz /tasks/1/row/: zobaczysz jeden wiersz.

Spróbuj swoich sił

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>All tasks</title>
</head>
<body>
    <h1>All tasks</h1>
    <ul id="tasks">
        {% for task in tasks %}
            <li id="task-{{ task.id }}">{{ task.title }}{% if task.done %} (done){% endif %}</li>
        {% endfor %}
    </ul>
</body>
</html>
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji API JSON

Poćwicz samodzielnie: Edytor online Django