Sobrescritura de get_queryset y Templates
Personalice los datos y los nombres de plantilla por vista
Sobrescritura de get_queryset y Templates es una lección gratuita de Django Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Django Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Django Academy incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
Make Generic Views Yours
Generic views give sensible defaults, but real apps need tweaks. You override a few hooks to customize them. 🔧
What get_queryset Does
get_queryset decides which rows a view works with, so overriding it lets you filter or sort the results.
Filtering with get_queryset
Return a filtered queryset to show only the rows you want, like published posts.
class PostList(ListView):
model = Post
def get_queryset(self):
return Post.objects.filter(published=True)Reading the URL or User
Inside get_queryset you can read self.request, so you can scope results to the logged-in user.
def get_queryset(self):
return Post.objects.filter(author=self.request.user)Override template_name
Do not like the default template path? Set template_name to point at any template you choose.
class PostList(ListView):
model = Post
template_name = "blog/home.html"Override the Context Variable
Pair template_name with context_object_name so your custom template reads with a friendly variable.
class PostList(ListView):
template_name = "blog/home.html"
context_object_name = "posts"Add Extra Context
Override get_context_data to pass extra values, like a page title, alongside the objects.
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx["title"] = "Blog"
return ctxAlways Call super First
In get_context_data, call super() first so you keep the objects the view already added, then add your own.
Customize the Suffix
Prefer model_browse over model_list? Set template_name_suffix to change just the suffix Django appends.
class PostList(ListView):
template_name_suffix = "_browse"Order the Results
Override get_queryset to sort rows, for example showing the newest posts first.
def get_queryset(self):
return Post.objects.order_by("-created")Small Hooks, Big Control
With these few overrides you bend generic views to almost any need while keeping their tidy structure. 💡
Quick Check
What is the purpose of overriding get_queryset?
Recap: Customizing Views
You shaped generic views with get_queryset, template_name, and get_context_data, customizing data and templates without losing their simplicity. 🎉
Aprende Python con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Sobrescritura de get_queryset y Templates» es gratis?
Sí — el texto completo de «Sobrescritura de get_queryset y Templates» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Django Academy, actualiza a CoddyKit PRO. El curso de Django Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Sobrescritura de get_queryset y Templates»?
Personalice los datos y los nombres de plantilla por vista Practicas Django Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Django Academy?
No se requiere experiencia previa. Django Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Sobrescritura de get_queryset y Templates»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Django Academy?
Sí. Cada lección de Django Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- ListView y DetailView
- CreateView y UpdateView
- DeleteView y success_url
- Sobrescritura de get_queryset y Templates