Şablon Parçaları
Coddy'nin Django Journey'sinin JSON API'leri bölümünün bir parçası. Ders 14 / 19.
Bir betik her zaman JSON istemez. Bir görev ekledikten sonra sunucudan bu görevin hazır <li> öğesini isteyip listeye ekleyebilir. Bir şablon bu satırı zaten oluşturduğundan sunucu onu yeniden kullanmalıdır.
Django 6.0, şablon parçalarını ekledi: tek başına da işleyebileceğiniz, adlandırılmış bir şablon parçası. Parçayı {% partialdef %} içine alın; inline ayrıca onu her döngü turunda bulunduğu yerde oluşturur. Bir görünüm, yalnızca şablonun adı, # ve parçanın adıyla belirtilen kısmı işler:
{% partialdef cart-total inline %}
<strong>{{ cart.total }}</strong>
{% endpartialdef %}return render(request, "shop/cart.html#cart-total", {"cart": cart})Bağlam, burada cart olmak üzere, parçanın okuduğu değerleri içermelidir. Sayfa ve parça aynı biçimlendirmeyi paylaşır; böylece birbirinden farklılaşamazlar.
Görev
Orta/tasks/ yolundaki tek bir satırı bağımsız olarak sun:
list.htmldosyasında<li>öğesinitask-rowadlı bir partial yap; her görev için çizilmeye devam etsin.- Yalnızca bu partial'ı oluşturan ve görev bulunamazsa 404 döndüren bir
task_row(request, pk)görünümü. task_rowadlı"tasks/<int:pk>/row/"rotası.
Run'a bas, ardından /tasks/1/row/ adresini aç: tek bir satır.
Kendin dene
<!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>
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
JSON API'leri bölümündeki tüm dersler
Kendi başına pratik yap: Django playground