如何更改 url 路由器 DRF 中的参数名称?

Dmi*_*nov 4 python django url router django-rest-framework

如何更改url中某些参数的名称?像这样 //,但默认情况下参数名称是“pk”,我向"api/product/1/rate/1/"并 get发出请求{'product_pk': '1', 'pk': '1'}

我想将“pk”重命名为“person_id”。

怎么做这个?

from rest_framework_nested import routers


router = routers.SimpleRouter()
router.register(r'product', ProductViewSet)
rate_router = routers.NestedSimpleRouter(router, r'product', lookup='product')
rate_router.register(r'rate', RateViewSet, base_name='rate')
Run Code Online (Sandbox Code Playgroud)

sch*_*ngt 5

您可以使用lookup_field和来控制它lookup_url_kwarg。这是文档

  • Lookup_field - 应用于执行单个模型实例的对象查找的模型字段。默认为“pk”。请注意,在使用超链接 API 时,如果需要使用自定义值,则需要确保 API 视图和序列化器类都设置查找字段。
  • lookup_url_kwarg - 用于对象查找的 URL 关键字参数。URL conf 应包含与该值对应的关键字参数。如果未设置,则默认使用与lookup_field相同的值。