[BUG] pydantic.errors.PydanticUserError: `QueryParams` 未完全定义;您应该定义 `ModelFilterSchema`, 然后调用 `QueryParams.model_rebuild()`。

作者: tomas-antal-ic创建于 2026年4月20日更新于 2026年6月4日

描述错误: 在分页和过滤的端点中似乎存在问题。虽然以下代码可以正常运行:

python
@api.get("/models", response=List[ModelSchema])
def list_models(request, filters: ModelFilterSchema = Query(...)) -> List[ModelSchema]:
    models = Model.objects.all()
    models = filters.filter(models)
    return models

以下代码也可以正常运行:

python
@api.get("/models", response=List[ModelSchema])
@paginate
def list_models(request):
    models = Model.objects.all()
    return models

以下代码会失败:

python
@api.get("/models", response=List[ModelSchema])
@paginate
def list_models(request, filters: ModelFilterSchema = Query(...)) -> List[ModelSchema]:
    models = Model.objects.all()
    models = filters.filter(models)
    return models

```pydantic.errors.PydanticUserError: QueryParams 未完全定义;您应该定义 ModelFilterSchema, 然后调用 QueryParams.model_rebuild()

内容来源: vitalik/django-ninja