Get() возвращает более одного продукта - возвращает 2 Django Rest Framework

DRF возвращает это: get() вернул более одного Продукта - он вернул 2!, когда я пытаюсь получить объекты из моей БД по PK

Сериализаторы

class ProductSerializer(serializers.ModelSerializer):
    # cat_id = serializers.SlugRelatedField(slug_field='cat_id', read_only=True)

    class Meta:
        model = Product
        fields = ('name', 'description', 'cat_id', 'use', 'diametr', 'len', 'color', 'photo')

Виды

class CategoryProductView(APIView):
    def get(self, request, pk):
        product = Product.objects.get(cat_id=pk)
        serializer = ProductSerializer(product)
        return Response(serializer.data)

Урлы path('api/categorylist/<int:pk>', CategoryProductView.as_view())

Если вы хотите сериализовать все элементы, принадлежащие определенному первичному ключу категории, вы фильтруете и сериализуете many=True элементов, так:

class CategoryProductView(APIView):
    
    def get(self, request, pk):
        products = Product.objects.filter(cat_id=pk)
        serializer = ProductSerializer(products, many=True)
        return Response(serializer.data)
Вернуться на верх