Для одного из моих клиентов я создаю список клиентов от администратора Django. Он разделяет клиентов по статусу: текущий, приобретенный и прошлый.
В настоящее время код представления для этого списка выглядит следующим образом:
def clients_list(request):
current_clients = Client.objects.all().filter(status='current')[:10]
acquired_clients = Client.objects.all().filter(status='acquired')[:10]
past_clients = Client.objects.all().filter(status='past')[:10]
return render_to_response('clients/list.html', {
'current_clients': current_clients,
'acquired_clients': acquired_clients,
'past_clients': past_clients
})
Теперь я знаю, что это не идеально, так как он попадает в базу данных три раза, когда я почти уверен, что есть способ сделать это только одним запросом. Можно ли реорганизовать этот код так, чтобы он попадал в базу данных только один раз и использовал Python для разделения результата на эти три переменные? Или я просто слишком акцентирую внимание на тривиальной части моего приложения?
Спасибо
Мэтт