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

时间:2019-11-27 14:13:56

标签: python django url django-rest-framework router

如何更改url中某些参数的名称? 像这样//,但是默认情况下参数的名称是“ 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')

1 个答案:

答案 0 :(得分:2)

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

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