Django Academy · Lección

Sobrescritura de get_queryset y Templates

Personalice los datos y los nombres de plantilla por vista

Lección 4 de 413 pasos

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 ctx

Always 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. 🎉

Gratis para empezar

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

  1. ListView y DetailView
  2. CreateView y UpdateView
  3. DeleteView y success_url
  4. Sobrescritura de get_queryset y Templates
← Volver a Django Academy