Во-первых, несколько советов по стилю: вы делаете четыре отдельных запроса, но каждый из них начинается точно так же:
Vehicle.objects.filter(
common_vehicle__series__model__manufacturer__manufacturer=make
).exclude(
status__status='Incoming'
)
Для удобства чтения, пожалуйста, подумайте над тем, чтобы присвоить это переменной, например, vehicle_query
, которую затем можно использовать в каждом последующем запросе:
vehicle_list = vehicle_query.order_by(
'common_vehicle__series__model__manufacturer__manufacturer',
'common_vehicle__series__model__model',
'common_vehicle__year'
)
Запрос не обрабатывается до последней минуты, поэтому это не повлияет на эффективность, но будет гораздо более читабельным.
Теперь, чтобы ответить на ваш вопрос: вам, очевидно, потребуется какой-то способ сохранения выбранных значений из одного представления в другое. Я не совсем понимаю, как другие представления соответствуют этому - я изначально хотел бы поместить его в скрытое поле или в строку запроса. Но, возможно, лучше всего сохранить его в сессии:
if request.POST:
chosen_vehicle = request.POST['vehicle_type']
request.session['vehicle_type'] = chosen_vehicle.id
return HttpResponseRedirect('/next/view/')
и в следующем представлении:
previously_chosen = request.session['vehicle_type']
filtered = Vehicle.objects.get(id=previously_chosen)
Это работает?