Bagian Template
Termasuk bagian API JSON dalam perjalanan Django di Coddy. Pelajaran 14 dari 19.
Sebuah skrip tidak selalu membutuhkan JSON. Setelah menambahkan tugas, skrip mungkin meminta server mengirimkan <li> siap pakai untuk tugas tersebut, lalu memasukkannya ke dalam list. Template sudah menggambar baris itu, jadi server sebaiknya menggunakannya kembali.
Django 6.0 menambahkan partial template: bagian template bernama yang juga bisa kamu render secara terpisah. Bungkus bagian itu dengan {% partialdef %}; inline juga menggambarnya di tempat, pada setiap giliran perulangan. Sebuah view hanya merender bagian yang ditentukan dengan nama template, #, dan nama partial:
{% partialdef cart-total inline %}
<strong>{{ cart.total }}</strong>
{% endpartialdef %}return render(request, "shop/cart.html#cart-total", {"cart": cart})Context harus memuat hal yang dibaca oleh bagian itu, dalam contoh ini cart. Halaman dan bagian tersebut menggunakan markup yang sama, jadi keduanya tidak bisa berbeda.
Tantangan
SedangTampilkan satu baris dari /tasks/ saja:
- Di
list.html, jadikan<li>sebagai partial bernamatask-row, yang tetap ditampilkan untuk setiap task. - Sebuah view
task_row(request, pk)yang hanya merender partial tersebut, dan memberikan 404 jika task tidak ditemukan. - Route
"tasks/<int:pk>/row/", dengan namatask_row.
Tekan Jalankan, lalu buka /tasks/1/row/: satu baris.
Coba sendiri
<!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>
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di API JSON
2Membaca Permintaan
Memfilter dengan QueryMembuat dengan POST5Proyek: Mengurutkan Pekerjaan
Proyek: PrioritasProyek: Menghapus Tugas yang SelesaiLatihan sendiri: Playground Django