python - 如何更改 Django REST Framework 中 RetrieveAPIView 中 lookup kwargs 字段的键?

标签 python django api django-rest-framework

Django REST Framework 使用 pk 在使用时具有查找字段 RetrieveApiView 必须在 url kwargs 中定义。

这使得 url 看起来像:

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

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

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

只需更改 url 中的 kwrags 键。

最佳答案

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

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

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

lookup_url_kwarg = 'foo_bar_id'

其中 foo_bar_id 是 url 中使用的键。

关于python - 如何更改 Django REST Framework 中 RetrieveAPIView 中 lookup kwargs 字段的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44694082/

相关文章:

django - 使用 django.contrib.auth,如何让用户知道登录失败的原因?

api - Reqwest 请求没有得到我的 reqwest::Client 的默认 header

python - 为什么不这样训练 GAN?

带有 WordNet 2.1 的 Python 3 和 NLTK - 这可能吗?

Python记录奇怪的行为

Python openAL 3D音效

python - Django - 在 session 中存储对象是一个好习惯吗?

python - Django & Geopy : all distance listed for each post : how to associated one distance to one post

java - Java API 中的正确返回值?

php - 使用 youtube api v3 验证视频是否存在