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)