swagger 无法派生路径参数“id”的类型,因为它是非类型的,并且从视图集获取查询集失败

gab6jxml  于 2024-01-07  发布在  其他
关注(0)|答案(1)|浏览(116)

无法派生路径参数“id”的类型,因为它是非类型的,并且从视图集获取查询集失败。请考虑向路径添加类型(例如int:id)或使用@extend_schema注解参数类型。默认为“string”。
在使用swagger文档的drf-spectacular包时出现此警告。
在调试过程中,我发现我们在请求中传递的id缺少类型,除了get request.it说我们在url中传递的id的传递类型。有没有办法在drf路由器中传递id类型和url?
我尝试过使用urlpatterns而不是使用router,方法是为get请求和retrieve、put、patch、delete分配url。
有没有更好的方法来解决这个警告?

hi3rlvi2

hi3rlvi21#

我看到了同样的警告。我用下面的代码修复了它。(注意,OpenApiParameter需要一个名称,类型和位置才能工作。)

@extend_schema(
        request=YourSerializerOrNone,
        responses=YourSerializerOrNone,
        parameters = [OpenApiParameter(name="id", type=str, location=OpenApiParameter.PATH)]
    )

字符串

相关问题