Вам нужно использовать group_by, поэтому он будет дифференцировать данные с группой. Пожалуйста, используйте ниже запрос
Post.
group_by {
|post| post.created_at.strftime("%d/%m/%y")
}
В ответ вы получите Хэш, ключ - дата и значение, содержащие записи для этой даты.
То, что у вас есть, правильно:
cart = carts.filter(Q(status='completed') | Q(status='paid') | Q(status='started'))
Вы можете просто использовать in
:
cart = carts.filter(status__in=['completed', 'paid', 'started'])
Когда вы говорите, что это не работает, я предполагаю, что вы не получаете никаких результатов. Вам следует: * проверить фактические status
значения, которые у вас есть в БД, и те, что находятся в предварительно отфильтрованном списке carts
:
set(Cart.objects.values_list('status', flat=True)) # full list of statuses
set(carts.values_list('status', flat=True)) # statuses for your pre-filter
Также рассмотрите возможность использования констант для ваших состояний (вместо строки).