API在我的GET请求中返回404。
这是我的API:
@permission_classes((permissions.AllowAny,))
class ProductInfo(APIView):
@staticmethod
def get(request):
product = models.Product.objects.filter(slug=request)
s_product = ProductSerializer(product, many=False)
return Response(s_product.data)
我的路由器:
router = DefaultRouter()
router.register(r'product', rest.ProductInfo, 'product')
urlpatterns = router.urls
我希望我的API能够接受以下格式的请求:
http://127.0.0.1:8000/api/catalog/product/slug-of-a-product/
并返回序列化数据。
我做错了什么?
答案 0 :(得分:1)
路由器希望获得视图集而不是api视图。由于这是一个经典的检索api,我建议你使用mixin。这就是我重建代码的方式。
@permission_classes((permissions.AllowAny,))
class ProductInfo(RetrieveModelMixin, viewsets.GenericViewSet):
queryset = models.Product.objects.all()
lookup_field = "slug"
serializer_class = CitySerializer