【问题标题】:How to change key of lookup kwargs field in RetrieveAPIView in Django REST Framework?如何更改 Django REST Framework 中 RetrieveAPIView 中查找 kwargs 字段的键?
【发布时间】:2026-02-03 04:50:01
【问题描述】:

Django REST Framework 使用 pk 在使用 RetrieveApiView 必须在 url kwargs 中定义。

这使得网址看起来像:

url(r'^(/foobar/(?P<pk>[\d]+)/$', FooBarFetch.as_view(), name="foo_bar")

但我想将 url 中的 pk 替换为更具描述性的内容,例如 foo_bar_id

更改look_up_field 不起作用,因为它仍然必须使用pk 来执行查找。

只需在 url 中更改 kwrags 键。

【问题讨论】:

    标签: python django api django-rest-framework


    【解决方案1】:

    所以我研究了 GenericAPIView 等类,发现它为此目的使用了一个字段 lookup_url_kwarg

    默认情况下,它是None,这使得 kwarg 键为 pk 在网址中。

    我们只需要像这样覆盖字段:

    lookup_url_kwarg = 'foo_bar_id'

    foo_bar_id 是 url 中使用的键。

    【讨论】:

      最近更新 更多