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

questionAnswers(2)

yourAnswerToTheQuestion