gpt4 book ai didi

django - Django REST 中的上下文感知可浏览 API 呈现

转载 作者:行者123 更新时间:2023-12-05 01:27:39 26 4
gpt4 key购买 nike

有没有一种简单的方法可以在 Django Rest Browsable API 中创建超链接,但在其他 API 渲染中却没有。明确地说,我想在通过可浏览的 API 查看页面时将某些字段呈现为超链接,但在通过 JSON 呈现时只呈现文本组件。

此用例的一个示例是将 ListView 中的 pk 呈现为详细 View 的超链接(类似于:http://chibisov.github.io/drf-extensions/docs/#resourceurifield),但仅当在可浏览 API 模式下查看 ListView 时才执行此操作。在常规 json GET 中,我只想呈现 pk。

我希望使可浏览的 API 在通过浏览器访问时更加可用/可导航。

这是否有任何相关性:http://www.django-rest-framework.org/api-guide/renderers#browsableapirenderer

更一般地说,有没有办法将排除项设置为依赖于渲染模式?

最佳答案

您可以在不同的上下文中返回不同的序列化程序,方法是覆盖 GenericAPIView 或其任何子类的 get_serializer 方法。

这样的事情应该是正确的...

def get_serializer(self, ...):
if self.request.accepted_renderer.format == 'api':
# Browsable style
else:
# Standard style

如果您将该行为编码为混合类,那么您就可以在整个 View 中轻松地重用它。

关于django - Django REST 中的上下文感知可浏览 API 呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24359077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com