【发布时间】:2010-12-17 04:23:12
【问题描述】:
我已经能够为我的应用实施过滤解决方案...到目前为止,我已经按年份、品牌和车身样式过滤了车辆库存。我想要做的是以这种方式过滤记录:
假设我在 make 中选择 Acura,在结果页面中,如果我选择其他过滤器之一,即年份或体型,我只需要包含 Acura 和所选年份或体型的记录。
我的过滤器代码如下:
def year_filter(request, year):
vehicle_query = Vehicle.objects.filter(
common_vehicle__year__year__exact=year
).exclude(status__status='Incoming')
vehicle_list = vehicle_query.order_by(
'common_vehicle__series__model__manufacturer__manufacturer',
'common_vehicle__series__model__model',
'common_vehicle__year'
)
vehicle = paginate(request, vehicle_list)
year_count = vehicle_query.order_by(
'-common_vehicle__year__year')
.values('common_vehicle__year__year')
.annotate(count=Count('id')
)
make_count = vehicle_query.order_by(
'common_vehicle__series__model__manufacturer__manufacturer')
.values('common_vehicle__series__model__manufacturer__manufacturer')
.annotate(count=Count('id')
)
style_count = vehicle_query.order_by(
'common_vehicle__body_style__style')
.values('common_vehicle__body_style__style')
.annotate(count=Count('id')
)
color_count = vehicle_query.order_by(
'exterior_colour__exterior_colour')
.values('exterior_colour__exterior_colour')
.annotate(count=Count('id')
)
return render_to_response('vehicles.html', {
'vehicle': vehicle,
'make_count': make_count,
'year_count': year_count,
'style_count': style_count,
})
【问题讨论】: