Menu
CoddyTech

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.

challenge icon

Tantangan

Sedang

Tampilkan satu baris dari /tasks/ saja:

  • Di list.html, jadikan <li> sebagai partial bernama task-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 nama task_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>
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di API JSON

Latihan sendiri: Playground Django