Gerenciadores de pesquisa Django simples

Apenas um padrão simples a seguir para tornar as visualizações de pesquisa / filtragem mais fáceis de compreender, testar e manter. Adicione um gerenciador com um searchmétodo que envolve toda a filtragem do queryset:

def search_view(request):
form
= SearchForm(request.GET)
if form.is_valid():
object_list
= MyModel.objects.search(form.cleaned_data)
else:
object_list
= MyModel.objects.all()

Agora, a filtragem condicional e as consultas complexas são encapsuladas no gerenciador e podem ser testadas sem a visualização. Postagem completa no blog Wellfire Interactive .