我正在使用Django 1.3基于类的通用视图来显示图像列表,但我想添加一个过滤器,使用户能够缩小显示的结果范围.
我当前的方法有效,但感觉相当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
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法将自定义过滤添加到通用视图?
django ×1