Ho, w para criar um formulário de filtro para uma lista de objetos genéricos (baseada em classe) no Djang
Estou usando a exibição genérica baseada em classe do Django 1.3 para exibir uma lista de imagens, mas quero adicionar um filtro que permita ao usuário restringir os resultados exibido
A minha abordagem atual funciona, mas parece bastante hackish:
class ImageFilterForm(ModelForm):
class Meta:
model = Image
class ImageListView(ListView):
model = Image
def get_queryset(self):
qs = Image.objects.select_related()
for item in self.request.GET:
key, value = item, self.request.GET.getlist(item)
# ... Filtering here ...
return qs
def get_context_data(self, **kwargs):
context = super(ImageListView, self).get_context_data(**kwargs)
context['filter_form'] = ImageFilterForm(self.request.GET)
return context
Existem meios melhores para adicionar filtragem personalizada a uma exibição genéric