Parziali di template
Fa parte della sezione API JSON del percorso Django di Coddy. Lezione 14 di 19.
Uno script non vuole sempre JSON. Dopo aver aggiunto un'attività, può chiedere al server il <li> già pronto per quell'attività e inserirlo nell'elenco. Un template disegna già quella riga, quindi il server dovrebbe riutilizzarlo.
Django 6.0 ha introdotto le parti di template: una parte denominata di un template che puoi anche renderizzare da sola. Racchiudila in {% partialdef %}; inline la disegna anche nel punto in cui si trova, a ogni iterazione di un ciclo. Una vista renderizza solo la parte usando il nome del template, # e il nome della parte:
{% partialdef cart-total inline %}
<strong>{{ cart.total }}</strong>
{% endpartialdef %}return render(request, "shop/cart.html#cart-total", {"cart": cart})Il contesto deve contenere ciò che la parte legge, in questo caso cart. La pagina e la parte condividono lo stesso markup, quindi non possono divergere.
Sfida
MedioServi una riga di /tasks/ da sola:
- In
list.html, rendi<li>una parte denominatatask-row, visualizzata comunque per ogni attività. - Una vista
task_row(request, pk)che renderizza solo quella parte e restituisce 404 se l’attività non esiste. - La route
"tasks/<int:pk>/row/", denominatatask_row.
Premi Run, poi apri /tasks/1/row/: una riga.
Provalo tu
<!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>
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di API JSON
2Lettura delle richieste
Filtrare con una queryCreare con POST5Progetto: organizzare il lavoro
Progetto: le prioritàProgetto: cancellare le attività completateEsercitati da solo: Playground Django