如何更改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')
答案 0 :(得分:2)
您可以使用lookup_field
和lookup_url_kwarg
来控制它。这是docs。
- lookup_field-应该用于执行单个模型实例的对象查找的模型字段。默认为 'pk'。请注意,在使用超链接的API时,您需要确保 API视图和序列化程序类都可以设置查找 字段,如果您需要使用自定义值。
- lookup_url_kwarg-应该用于对象查找的URL关键字参数。 URL conf应包含关键字参数 与此值相对应。如果未设置,则默认使用 与lookup_field的值相同。