Django при получении разных записей в таблице выбирает случайную строку

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

Таблица:

id без фольги фольга datetime 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 без фольги фольга datetime 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 без фольги фольга datetime 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"

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

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

Вернуться на верх