Listado: Crear Filtros en el servidor por campos de búsqueda y selección - 16
Vamos a implementar las opciones del filtro en el servidor.
Vamos a implementar las opciones del filtro en el servidor.
vamos a comenzar un nuevo apartado, una vez completada los enlaces en Django van a ser dos vos que sería el de filtro es decir por aquí poder valgar la redundancia filtrar nuestros datos vamos a colocar un filtro que busque por el título es decir un campo de texto y por la categoría que son las entidades que tenemos por lo tanto ya tenemos un par de maneras un par de campos y tú lo pudieras replicar si fuera necesario por ejemplo si también quisieras crear un filtro para el tipo que no lo vamos a hacer porque estamos creando una tienda en línea una especie de tienda en línea simplemente tuvieras que replicar lo que nosotros vamos a hacer para la categoría
Así que aclarado esto vamos a comenzar con la parte del servidor aquí en el en la vista definiendo los campos en pocas palabras los filtros no son más que condicionales es así de simple simplemente preguntamos si tal campo está si tal campo está entonces aplicamos una nueva condición un nuevo filtro a nuestro query y si no está Pues nada sigue Exactamente igual eso es básicamente vamos a hacer algo despacio por acá y por aquí lo que vamos a hacer sería primero preguntar por un campo llamado share vamos a obtenerlo request get obviamente va va a ser una petición tipo get Recuerda que las peticiones tipo get son empleadas o deberían ser empleadas para tipo consulta Es decir para cualquier cosa que no cambie el modelo de datos aquí colocamos share y adicionalmente vamos a preguntar si esto está definido ya que otra vez es un campo completamente opcional Así que si esto no está definido vamos a devolver aquí preguntamos si está definido si no está definido entonces devolvemos un vacío ya con esto tenemos el de share vamos con el siguiente que sería el de la categoría va a ser algo similar aquí coloco category ID por aquí también el campo lo voy a llamar como category ID pero aquí me interesa es que sea un entero para hacer la consulta Así que lo tuviéramos que convertir a un entero vamos a hacer acá category ID va a ser igual a in category ID ahí ya lo pasamos a un entero ahora podemos preguntar si el mismo Está o no definido aquí colocamos If categoría ID no está definido simplemente le establecemos un vacío y aquí estamos Estableciendo nuestros datos por el cual vamos a buscar el de share y el de categoría siguiente paso sería por aquí colocar si están definidos para finalmente aplicar el filtro:
mystore\elements\views.py
def index(request):
search = request.GET.get('search') if request.GET.get('search') else ''
category_id = request.GET.get('category_id')
category_id = int(category_id) if category_id else ''
elements = Element.objects
if search:
elements = Element.objects.filter(title__contains=search)
if category_id:
elements = elements.filter(category_id=category_id)
elements = elements.filter(type=2).all()
categories = Category.objects.all()
- Andrés Cruz
Este material forma parte de mi curso y libro completo; puedes adquirirlos desde el apartado de libros y/o cursos Curso y Libro desarrollo web con Django 5 y Python 3 + integración con Vue 3, Bootstrap y Alpine.js.
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter
Acepto recibir anuncios de interes sobre este Blog.
!Cursos desde!
4$
En Academia
Ver los cursos!Libros desde!
1$
Ver los libros