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
相关产品推荐
相关产品推荐

