Skip to content

Instantly share code, notes, and snippets.

@boniattirodrigo
Last active August 29, 2015 14:27
Show Gist options
  • Save boniattirodrigo/e2125e778ced1f4e2e65 to your computer and use it in GitHub Desktop.
Save boniattirodrigo/e2125e778ced1f4e2e65 to your computer and use it in GitHub Desktop.
Filters in Django
class ListaProdutos(ListView):
template_name = 'produtos.html'
model = Produto
context_object_name = 'produtos'
def get_queryset(self):
pista = self.request.GET.get('pesquisar_por')
status = self.request.GET.get('status')
if status == 'ativo':
status = 'A'
elif status == 'inativo':
status = 'I'
else:
status = 'todos'
# Se pista igual a vazio ou pista igual a nulo
if (pista == '') | (pista is None):
# Se status for todos
if status == 'todos':
produtos = Produto.objects.using('my-database').all()[:300]
# Se não vai pesquisar pelo o status escolhido
else:
produtos = Produto.objects.using('my-database').filter(
status=status
)
else:
if status == 'todos':
produtos = Produto.objects.using('my-database').filter(
Q(pk__icontains=pista) |
Q(nome__icontains=pista) |
Q(referencia__icontains=pista) |
Q(grupo__nome__icontains=pista)
)
else:
produtos = Produto.objects.using('my-database').filter(
Q(pk__icontains=pista) |
Q(nome__icontains=pista) |
Q(referencia__icontains=pista) |
Q(grupo__nome__icontains=pista),
status=status
)
return produtos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment