django - Django Rest Framework通过DRF中的lookup_field(uuid)过滤相关模型而不是pk
问题描述
我有两个相关的 django 模型。我们称这两个模型为book
和author
。为简化起见,我们假设它是一对一的关系。
我正在使用 Django Rest Framework lookup_field 进行基本的 api 调用,使用 uuid 而不是 pk ,如此处所示。https://www.django-rest-framework.org/api-guide/generic-views/
所以我的 API 调用是and/books/e56c231c-0a11-48fa-ab6a-dcdae0a53620/
而/authors/e56c231c-0a11-48fa-ab6a-dcdae0a53620/
不是1 是 pk。/books/1/
/authors/1/
到目前为止,这很好用。
但是现在我正在实现 DRF 过滤功能。并且默认情况下的过滤工作如下。/books?author=1
这很好用,但我不希望暴露 pks。我希望过滤像这样工作/books?author=e56c231c-0a11-48fa-ab6a-dcdae0a53620/
我能够通过做来让它工作,/books?author__uuid=e56c231c-0a11-48fa-ab6a-dcdae0a53620/
但这不是我想要的。我真的希望由 drf 过滤器生成的 UI 也包含 UUID 作为值,而不是 pk。
谢谢
解决方案
推荐阅读
- modelica - Modelica中图形项的常用定义
- php - 如何让 /bin/bash 在 Composer 中运行所需的 php 版本?
- vue.js - Vuetify 带有图标的默认按钮并在切换时更改颜色
- java - 如何将c#中的字典作为参数传递给java中实现的soap Web服务方法
- typo3 - Typoscript:获取 fe 用户关联图像的图像路径
- android - 从最近清除应用程序时,Android Work Manager 定期工作请求不会重复
- android - 可绘制资源文件仅在大屏幕上工作而不在小屏幕上工作
- android - 如何为 android deeplink/applink 管理两个不同的意图过滤器?
- javascript - 我可以通过 document.getElementsByClassName() 来处理 React 组件吗?
- html - `justify-content: space-around` 不起作用