python - 视图集中视图的 Django Rest Framework 自定义模式
问题描述
我有一个使用 Django 和 Django REST Framework 构建的 API。我有一个模型,它返回一些与典型 Django 模型不对应的构建的 JSON。因此,似乎利用 Django 模型知识的自动文档功能不适用于我的某些观点。
特别是,我有一个返回一些典型 API 视图(如对象列表)的视图集,以及一些返回我的一些自定义对象的视图。我想为这些自定义对象构建文档,但我不确定如何覆盖视图集中特定端点的架构。如何覆盖为 DRF 视图集中的单个视图生成的架构?
DRF 似乎为 view 提供了这个功能,但我想为 Viewsets 做同样的事情。
解决方案
好的,经过多次尝试失败重试,我终于让它工作了——你失去了一些自动(神奇的)自省,比如id
路径参数和从文档字符串中获取的描述,但我仍然认为这是值得的:
custom_schema = ManualSchema(
fields=[
coreapi.Field(
"id",
required=True,
location="path",
schema=coreschema.String(
title="ID",
description="Foobar ID.",
)
),
coreapi.Field(
"foobar",
location="query",
schema=coreschema.String(
title="Foobar",
description="Foobar?",
)
),
],
description="Foobar!",
)
class FoobarViewSet(viewsets.ReadOnlyModelViewSet):
@action(methods=["get"], detail=True, schema=custom_schema)
def foobar(self, request, id=None):
...
推荐阅读
- c++ - 以派生类为参数的 C++ 基类构造函数(?)
- c++ - 使用 args 传递函数并将值返回给另一个函数
- python - 推断指定初始值和最终值的子字符串
- python - Keras 中的 model.predict() 无法正常工作
- c# - C# 使用带有 RadioButton 的 switch 语句
- laravel - Laravel Cashier 付款尝试失败,因为付款方式无效
- c# - 将用户的多个字符串输入转换为 Int、DateTime 和 Decimal 数据类型
- apache-spark - 如何根据 Pyspark 中的值找到前 n 个键?
- java - Spring Security httpBasic() 总是显示未经授权
- java - 使用 Artifactory 依赖项时,VS Code Java 语言支持中的“未解决的依赖项”/“无法解析导入”