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

问题描述 投票:0回答:1

无法派生路径参数“id”的类型,因为它是无类型的,并且从视图集中获取查询集失败。考虑向路径添加类型(例如 int:id)或使用 @extend_schema 注释参数类型。默认为“字符串”。

在使用 drf-spectaulous 包作为 swagger 文档时出现此警告。

在调试过程中,我发现除了 get request 之外,我们在请求中传递的 id 缺少类型。它表示我们在 url 中传递的 id 的传递类型。 有什么方法可以在 drf 路由器中通过 url 传递 id 类型吗?

我尝试使用 urlpatterns 而不是使用路由器,通过为获取请求和检索、放置、修补、删除提供 url。

有没有更好的方法来解决这个警告?

django-rest-framework swagger swagger-ui drf-spectacular
1个回答
0
投票

我看到了同样的警告。使用以下代码修复它。
请注意,OpenApiParameter 需要名称、类型和位置才能正常工作。

@extend_schema(
        request=YourSerializerOrNone,
        responses=YourSerializerOrNone,
        parameters = [OpenApiParameter(name="id", type=str, location=OpenApiParameter.PATH)]
    )
© www.soinside.com 2019 - 2024. All rights reserved.