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

问题描述 投票:0回答:1

如何更改网址中某些参数的名称?像这样//,但是默认情况下参数的名称是“ pk”我向"api/product/1/rate/1/"发出请求并获得{'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')
python django url django-rest-framework router
1个回答
2
投票

您可以使用lookup_fieldlookup_url_kwarg来控制。这是docs

  • lookup_field-用于对单个模型实例执行对象查找的模型字段。默认为'pk'。请注意,在使用超链接的API时,您需要确保API视图和序列化程序类都可以设置查找字段,如果您需要使用自定义值。
  • lookup_url_kwarg-应该用于对象查找的URL关键字参数。 URL conf应包含关键字参数与此值相对应。如果未设置,则默认使用与lookup_field相同的值。
© www.soinside.com 2019 - 2024. All rights reserved.