Django Rest Framework возвращает дубликаты данных при возврате вложенного json-ответа
У меня есть таблица ценообразования, которая содержит следующие поля: id
, date
, price_non_foil
, price_foil
, card_id
. В этой таблице хранятся данные о ценах для каждой карты за каждый день. Например:
"23a6c413-7818-47a8-9bd9-6de7c328f103" | "2021-12-08" | 0.24 | 0.80 | "2ab9aecc-ce3c-4aaa-bf3c-fe9da4bba827" |
"c51a72ab-f29f-4465-a210-ff38b15e83a1" | "2021-12-05" | 1.27 | 0.80 | "2ab9aecc-ce3c-4aaa-bf3c-fe9da4bba827" |
"17289b71-3b73-4e16-a479-25a7069a142e" | "2021-12-09" | 0.38 | 0.80 | "2ab9aecc-ce3c-4aaa-bf3c-fe9da4bba827" |
"fa88f619-ec32-4550-9a57-c77b6e1a8e11" | "2021-12-07" | 1.27 | 0.80 | "2ab9aecc-ce3c-4aaa-bf3c-fe9da4bba827" |
"f996d6cb-7d98-415c-bd70-2fca8f4e03a5" | "2021-12-06" | 1.27 | 0.80 | "2ab9aecc-ce3c-4aaa-bf3c-fe9da4bba827" |
"2f8c00f3-4d47-478d-a653-7d7a476e9bae" | "2021-12-09" | 0.43 | 3.33 | "2e5e1d78-0818-4ecd-a8f0-37e280aaa30a" |
"15b20912-4103-4e08-8f91-fed820b761af" | "2021-12-05" | 0.66 | 5.08 | "2e5e1d78-0818-4ecd-a8f0-37e280aaa30a" |
В настоящее время есть данные о ценах за 5 дат для каждой карты. Я пытаюсь создать конечную точку для возврата последних 2 цен для каждой карты, используя Django rest framework. Мне удалось добиться того, что ответ будет вложен под id карты, но моя проблема в том, что он возвращает несколько id карт, я предполагаю, что на основе количества записей данных о ценах для каждой карты.
views.py
class individual_set_pricing(ListAPIView):
serializer_class = SerializerSetsIndividualPricing
def get_queryset(self):
code = self.kwargs.get('code', None)
qs = magic_sets_cards_pricing.objects.filter(card_id__set_id__code=code.upper()).values('card_id')
return qs
serializers.py
class SerializerSetsIndividualPricing(serializers.ModelSerializer):
card = serializers.SerializerMethodField('get_card')
class Meta:
model = magic_sets_cards_pricing
fields = ['card_id', 'card']
def get_card(self, obj):
date = magic_sets_cards_pricing.objects.filter(card_id=obj['card_id']).values('date', 'price_non_foil', 'price_foil').order_by('-date')[:2]
return date
Ответ
[
{
"card_id": "3a261180-c1b3-4641-9524-956be55bee7a",
"card": [
{
"date": "2021-12-09",
"price_non_foil": 1.15,
"price_foil": 1.54
},
{
"date": "2021-12-08",
"price_non_foil": 0.43,
"price_foil": 1.62
}
]
},
{
"card_id": "3a261180-c1b3-4641-9524-956be55bee7a",
"card": [
{
"date": "2021-12-09",
"price_non_foil": 1.15,
"price_foil": 1.54
},
{
"date": "2021-12-08",
"price_non_foil": 0.43,
"price_foil": 1.62
}
]
},
...
как удалить дубликаты записей в json-ответе?