首页 > 解决方案 > Django Rest Framework通过DRF中的lookup_field(uuid)过滤相关模型而不是pk

问题描述

我有两个相关的 django 模型。我们称这两个模型为bookauthor。为简化起见,我们假设它是一对一的关系。

我正在使用 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。

谢谢

标签: djangorestfilterframeworks

解决方案


推荐阅读