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)