我正在为汽车租赁客户开发Django应用程序。 在我的模型中,我有一个带有汽车属性的汽车模型(例如:乘客,港口,变速箱,类别,ecc ......)。
我已正确设置列出所有车辆的视图和模板。 现在,我需要实现一个表格来过滤汽车列表的某些特征。
我想在我的CarListView中实现一个过滤逻辑,根据查询字符串中包含的特征过滤汽车。
ex:/ cars /?ports = 1& passengers = 3
如何以优雅的Django方式实现这一点? 最好在我的urls.py中使用带有GET方法的表单或设置自定义URL
一种可能的解决方案(针对其他用户):
class CarResultsView(BreadcrumbsMixin, ListView):
queryset = Vehicle.objects.all()
template_name = "my_app/cars.html"
def get_queryset(self):
queryset = super(CarResultsView, self).get_queryset()
search_form = VehicleFilterForm(self.request.GET)
if search_form.is_valid():
queryset = queryset.filter(**search_form.cleaned_data)
return queryset
def get_context_data(self, **kwargs):
context = super(CarResultsView, self).get_context_data(**kwargs)
get_params = self.request.GET
context['form'] = VehicleFilterForm(get_params)
return context
在您看来,可能存在一个更优雅的解决方案吗?