managers.py
from django.db.models import Q #operador "OR" y "AND"
class AutorManager(models.Manager):
""" managers para el modelo autor"""
def buscar_autor2(self,kword):
resultado = self.filter(
Q(nombre__icontains=kword) | Q(apellidos__icontains=kword) #Operador OR
)
return resultado
views.py
class ListarAutores(ListView):
context_object_name='lista_autores'
template_name='autor/lista.html'
def get_queryset(self):
palabra_clave=self.request.GET.get('kword','')
return Autor.objects.buscar_autor2(palabra_clave)
urls.py
path(
'autores',
views.ListarAutores.as_view(),
name="autores"
),
templates/autor/lista.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>lista de autores</h1>
<p>
<form method="GET">{% csrf_token %}
<input type="text" id="kword" name="kword" placeholder="ingrese nombre">
<button type="submit">Consultar</button>
</form>
</p>
{% for a in lista_autores %}
<li>
{{a.nombre}} -{{a.apellidos}} - {{a.nacionalidad}}
</li>
{% endfor %}
</body>
</html>

Última modificación: 31 Jul 2023 21:37
No hay comentarios aún
Sé el primero en comentar este artículo