Añadir Filtros al Panel Administrativo de Django
Filtrar por Campos Existentes
Django permite añadir filtros por campos del modelo de forma muy sencilla. Para hacerlo, basta con usar la opción list_filter
en el Admin de tu modelo.
# models.py
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
published_date = models.DateTimeField()
def __str__(self):
return self.title
Para añadir los filtros en el panel administrativo, debes usar list_filter
en el archivo admin.py
:
admin.py
from django.contrib import admin
from .models import Post
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'published_date')
list_filter = ('author', 'published_date') # Añadir los filtros aquí
admin.site.register(Post, PostAdmin)
¿Qué hace esto?
lister_filter
añade filtros en el panel administrativo para los campos que especifiques. En este caso, podrás filtrar los posts por el autor y la fecha de publicación en la interfaz del administrador.
Búsqueda por un Campo de Texto
Django Admin ofrece la opción search_fields
en ModelAdmin
. Si se configura, se habilitará un cuadro de búsqueda en la página de lista para filtrar los elementos del modelo.