Sovrascrivere get_queryset e i template
Personalizzare dati e nomi dei template per ogni vista
Sovrascrivere get_queryset e i template è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Django Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Django Academy include 4 lezioni in totale.
Personalizzare le viste generiche
Le viste generiche offrono impostazioni predefinite sensate, ma le applicazioni reali richiedono modifiche. Può sovrascrivere alcuni hook per personalizzarle. 🔧
Che cosa fa get_queryset
get_queryset decide su quali righe opera una vista; sovrascrivendolo può filtrare o ordinare i risultati.
Filtrare con get_queryset
Restituisca un queryset filtrato per mostrare solo le righe desiderate, ad esempio i post pubblicati.
class PostList(ListView):
model = Post
def get_queryset(self):
return Post.objects.filter(published=True)Leggere l'URL o l'utente
All'interno di get_queryset può leggere self.request, così può limitare i risultati all'utente che ha effettuato l'accesso.
def get_queryset(self):
return Post.objects.filter(author=self.request.user)Sovrascrivere template_name
Il percorso del template predefinito non è adatto? Imposti template_name per indicare qualsiasi template desideri.
class PostList(ListView):
model = Post
template_name = "blog/home.html"Sovrascrivere la variabile di contesto
Abbini template_name a context_object_name, così il template personalizzato può leggere i dati tramite una variabile dal nome intuitivo.
class PostList(ListView):
template_name = "blog/home.html"
context_object_name = "posts"Aggiungere contesto extra
Sovrascriva get_context_data per passare valori aggiuntivi, come il titolo di una pagina, insieme agli oggetti.
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx["title"] = "Blog"
return ctxChiamare sempre prima super
In get_context_data chiami prima super(), così conserva gli oggetti già aggiunti dalla vista e può poi aggiungere i propri.
Personalizzare il suffisso
Preferisce model_browse a model_list? Imposti template_name_suffix per modificare solo il suffisso aggiunto da Django.
class PostList(ListView):
template_name_suffix = "_browse"Ordinare i risultati
Sovrascriva get_queryset per ordinare le righe, ad esempio mostrando prima i post più recenti.
def get_queryset(self):
return Post.objects.order_by("-created")Piccoli hook, grande controllo
Con queste poche sovrascritture può adattare le viste generiche a quasi ogni esigenza, mantenendone al contempo la struttura ordinata. 💡
Verifica rapida
Qual è lo scopo di sovrascrivere get_queryset?
Riepilogo: personalizzare le viste
Ha adattato le viste generiche con get_queryset, template_name e get_context_data, personalizzando dati e template senza perderne la semplicità. 🎉
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Sovrascrivere get_queryset e i template» è gratuita?
Sì — il testo completo di «Sovrascrivere get_queryset e i template» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Django Academy, passa a CoddyKit PRO. Il corso Django Academy include 4 lezioni in totale.
Cosa imparerò in «Sovrascrivere get_queryset e i template»?
Personalizzare dati e nomi dei template per ogni vista Eserciti Django Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Django Academy?
Non è richiesta alcuna esperienza precedente. Django Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Sovrascrivere get_queryset e i template»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Django Academy?
Sì. Ogni lezione Django Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- ListView e DetailView
- CreateView e UpdateView
- DeleteView e success_url
- Sovrascrivere get_queryset e i template