3 ИЛИ условия в одном фильтре наборов запросов

Вам нужно использовать group_by, поэтому он будет дифференцировать данные с группой. Пожалуйста, используйте ниже запрос

Post.
  group_by {
    |post| post.created_at.strftime("%d/%m/%y")
  }

В ответ вы получите Хэш, ключ - дата и значение, содержащие записи для этой даты.

0
задан Jason Howard 20 January 2019 в 03:32
поделиться

1 ответ

То, что у вас есть, правильно:

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

Также рассмотрите возможность использования констант для ваших состояний (вместо строки).

0
ответ дан François Constant 20 January 2019 в 03:32
поделиться