【问题标题】:How i can change name of parameters in url routers DRF?如何更改 url 路由器 DRF 中的参数名称?
【发布时间】:2019-11-27 14:13:56
【问题描述】:

如何更改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')

【问题讨论】:

  • NestedSimpleRouter 是在哪里定义的?
  • 或者我如何向 url "api/product/1/rate/" 发出 PUT 请求?因为它需要像这样的网址“api/product/1/rate/

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-22
    • 2018-03-24
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2015-10-02
    • 2018-09-18
    相关资源
    最近更新 更多