如何使用 Django Rest Framework 在 CRUD API 中使用其他 URL

How to use other URLs in CRUD API using Django Rest Framework

我正在尝试使用 Django Rest Framework 制作 CRUD API。

这是我的 urls.py

router = routers.DefaultRouter()
router.register('products', ProductView)

# router.register('products/delete/<id>', ProductView)
(This is not working)

urlpatterns = [
    path('', include(router.urls)),
]

这是我的 views.py

class ProductView(viewsets.ModelViewSet):
    queryset = Products.objects.all()
    serializer_class = ProductSerializer

通过使用上面的代码,我可以获取所有产品的列表 ---

1) localhost/products(这给出了所有产品的列表)

2) localhost/products/1(这给出了 ID 为 1 的产品)

如何使用其他 URL 进行删除、更新等操作

以上代码有效。没事。我只是想知道如何从客户端使用其他路由。

通过此配置,您将有两个 URLs

  • localhost/products/
  • localhost/products/<product_pk>/

但是,区别在于使用哪种方法与API交互。我希望您已经知道我们有 POSTPUTPATCHDELETE 等 HTTP 方法,并且上面的 APIs 能够使用这些 HTTP 方法。

您可以看到整个 URL 配置(如 table)in DRF doc