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-ответе?

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