Django 1.3のクラスベースのジェネリックビューを使用してイメージのリストを表示していますが、表示された結果を絞り込むためのフィルタを追加したいと思います。Djangoで(クラスベースの)汎用オブジェクトリストのフィルタフォームを作成するには?
私の現在のアプローチは動作しますが、かなりハック感じている:
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
は汎用ビューにカスタムフィルタを追加するが、より良い手段はありますか?
私はちょうど見つけ[django-filter](https://github.com/alex/django-filter)アプリを開き、mixinと組み合わせてください。私はそれが私のために十分にきれいだと思う;-)ありがとう! – cvk
私はdjango-filterを使い、上記のget_queryset()メソッドと組み合わせてうまく動作します。 fyi、filter.qsは、フィルターセットオブジェクト(django-filterアプリケーションの一部)からフィルターされたクエリーセットを返す属性です – rsp
この機能をforms.DateFieldに使用するには、どうすればよいですか? – Marcaum54