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

drf spectacular下Swagger UI不显示query查询参数如何解决

解决方案

你当前写的@extend_schema注解配置本身是符合要求的,按照以下步骤校验调整即可在Swagger UI中正常展示category查询参数:

  • 首先确认基础依赖导入和框架配置正确:
    1. 导包语句必须正确:
    from drf_spectacular.utils import extend_schema, OpenApiParameter
    
    1. 确认settings.py中已经完成drf-spectacular基础配置:
    INSTALLED_APPS = [
        # 其余原有应用
        'drf_spectacular',
    ]
    
    REST_FRAMEWORK = {
        # 其余原有DRF配置
        'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
    }
    
  • 你当前把@extend_schema注解加在重写的list方法上的写法是生效的,配置完成后清理浏览器缓存、重启Django服务,重新打开Swagger UI即可看到category查询参数。
  • 如果你不想单独给list方法加注解,也可以把参数配置放到视图类的全局属性中,对所有列表查询接口生效:
from drf_spectacular.utils import OpenApiParameter
from rest_framework.generics import ListAPIView

class YourGoodsListView(ListAPIView):
    # 其余原有配置:serializer_class、queryset、filter_backends等
    extend_schema_parameters = [
        OpenApiParameter(name='category',location=OpenApiParameter.QUERY, description='Category Id', required=False, type=int),
    ]

    def list(self, request, *args, **kwargs):
        category_id = request.query_params.get('category')
        # 原有业务逻辑
        return Response(data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:48:03