AND
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)
)
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
para poder funcionar necesitarias una vista html donde se puedan ingresar dos parametros diferentes
NOT
managers.py
from django.db.models import Q
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 "AND" y "NOT"
)
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
para poder funcionar necesitarias una vista html donde se puedan ingresar dos parametros diferentes
Última modificación: 31 Jul 2023 21:39
No hay comentarios aún
Sé el primero en comentar este artículo