джанго, получающий отдельные записи в таблице, похоже, выбирает случайную строку

#python #python-3.x #django

Вопрос:

У меня есть таблица, содержащая данные о ценах на карты, и я пытаюсь получить данные о ценах для разных карт, card_id но, похоже, строка выбирается случайным образом. Я хотел бы получить последние datetime данные о ценах на каждую карту card_id .

Стол:

ID цветной лист фольга дата-время card_id
«fb7fbcdc» 0.20 0.49 «2021-10-11 10:03:51.943603 01» «00302342»
«d0d6f491» 0.10 0.49 «2021-10-11 10:01:09.916438 01» «00302342»
«bfdca73b» 0.03 0.04 «2021-10-11 10:03:51.907601 01» «012e0b83»
«33c7aeae» 0.10 0.04 «2021-10-11 10:01:09.875894 01» «012e0b83»
«94ca3324» 0.10 0.04 «2021-10-11 10:01:09.961261 01» «0307f37b»
«2e992a8d» 0.03 0.04 «2021-10-11 10:03:51.988602 01» «0307f37b»

В настоящее время я получаю данные о ценах, используя следующий код:

 pricing_cards.objects.filter(card_id__rarity='mythic').values_list('nonfoil', flat=True).distinct('card_id'),
 

Например, это возвращение:

ID цветной лист фольга дата-время card_id
«d0d6f491» 0.10 0.49 «2021-10-11 10:01:09.916438 01» «00302342»
«bfdca73b» 0.03 0.04 «2021-10-11 10:03:51.907601 01» «012e0b83»
«94ca3324» 0.10 0.04 «2021-10-11 10:01:09.961261 01» «0307f37b»

Но я бы хотел, чтобы он вернулся:

ID цветной лист фольга дата-время card_id
«fb7fbcdc» 0.20 0.49 «2021-10-11 10:03:51.943603 01» «00302342»
«bfdca73b» 0.03 0.04 «2021-10-11 10:03:51.907601 01» «012e0b83»
«94ca3324» 0.10 0.04 «2021-10-11 10:01:09.961261 01» «0307f37b»

Ответ №1:

Это должно сделать это:

pricing_cards.objects.filter(card_id__rarity='mythic').order_by('card_id', '-datetime').distinct('card_id').values_list('nonfoil', flat=True)