You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

drf-spectacular未在Swagger UI显示可选参数问题求助

解决Swagger未显示自定义FilterSet可选参数的问题

不用@extend_schema也能让Swagger识别FilterSet的过滤参数,核心是通过drf-spectacular的自动配置实现,步骤如下:

1. 安装必要依赖

确保项目已安装以下两个包:

pip install django-filter drf-spectacular

2. 配置Django Settings

在settings.py中添加如下配置:

# 加入INSTALLED_APPS
INSTALLED_APPS = [
    # ... 其他已有应用
    'django_filters',
    'drf_spectacular',
]

# 设置DRF默认Schema生成类
REST_FRAMEWORK = {
    # ... 其他DRF配置
    'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
}

# 开启Django Filter的自动文档生成支持
SPECTACULAR_SETTINGS = {
    'ENABLE_DJANGO_FILTERS': True,
    # 可按需添加其他配置,比如接口文档标题、版本号等
}

3. 验证效果

配置完成后重启服务,打开Swagger UI(通常路径为/swagger/或/redoc/),就能看到number_field作为可选查询参数出现在接口文档中。

你现有的FilterSet和ViewSet代码无需任何修改,drf-spectacular会自动识别FilterSet中定义的所有过滤字段,包括标记为required=False的可选参数。

内容的提问来源于stack exchange,提问作者Shaykan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 00:45:53