python
type_error
ai_generated
true
pydantic.errors.PydanticSchemaGenerationError: Unable to generate pydantic-core schema for <class 'decimal.Decimal'>. Set `arbitrary_types_allowed=True` in the model_config to ignore this error or implement `__get_pydantic_core_schema__` on your type to fully support it.
ID: python/pydantic-arbitrary-types-not-allowed
80%Fix Rate
88%Confidence
0Evidence
2024-06-20First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 2.x | active | — | — | — |
Root Cause
A field uses a class Pydantic cannot introspect (a custom class or third-party type lacking a schema hook), and `arbitrary_types_allowed` is not enabled.
generic中文
字段使用了 Pydantic 无法内省的类型(自定义类或缺少 schema 钩子的第三方类型),且未启用 `arbitrary_types_allowed`。
Workarounds
-
90% success
Enable it: `model_config = ConfigDict(arbitrary_types_allowed=True)` and add a `field_validator` for the type.
-
85% success
Implement `__get_pydantic_core_schema__` on the custom class to provide a proper schema.
Dead Ends
Common approaches that don't work:
-
50% fail
Adding `arbitrary_types_allowed=True` without `isinstance` checks means the field is never validated, leading to silent bad data.
-
85% fail
Subclassing the third-party type does not help; Pydantic still cannot introspect it.