Добавлять параметры вручную с помощью drf-yasg, modelviewset
как добавить ручные параметры с помощью drf-yasg? Мне нужно два параметра для id товара и количества, вот как это выглядит сейчас Swagger api, вот чего я хочу добиться RestFrameWorkBrowsableAPI.
Я пытался добавить ручные параметры с помощью декораторов swagger_auto_schema, но ничего не меняется.
это мое мнение
class OrderItemViewSet(ModelViewSet):
http_method_names = ['get', 'post', 'patch', 'delete','head', 'options']
def get_serializer_class(self):
if self.request.method == 'PATCH':
return UpdateOrderItemSerializer
elif self.request.method == 'POST':
return AddOrderItemSerializer
return OrderItemSerializer
def get_queryset(self):
return OrderItem.objects.filter(order_id=self.kwargs['order_pk']).select_related('product')
def get_serializer_context(self):
return {'order_id': self.kwargs['order_pk']}
это мои сериализаторы
class AddOrderItemSerializer(serializers.ModelSerializer):
#product_id = serializers.IntegerField()
product_id = openapi.Parameter('product', in_=openapi.IN_QUERY, type=openapi.TYPE_NUMBER)
@swagger_auto_schema(manual_parameters=[product_id])
def save(self, **kwargs):
order_id = self.context['order_id']
product_id = self.validated_data['product_id']
quantity = self.validated_data['quantity']
try:
order_item = OrderItem.objects.get(
order_id=order_id, product_id=product_id)
order_item.quantity += quantity
order_item.save()
self.instance = order_item
except OrderItem.DoesNotExist:
self.instance = OrderItem.objects.create(
order_id=order_id, **self.validated_data)
return self.instance
class Meta:
model = OrderItem
fields = ['id', 'product_id', 'quantity']