Describe the bug
When I pass a Callable to the json_schema_extra argument of pydantic.Field(), I get the following error:
File "/home/xxxx/project/.venv/lib/python3.11/site-packages/beanie/odm/utils/init.py", line 754, in init_beanie
await Initializer(
File "/home/xxxx/project/.venv/lib/python3.11/site-packages/beanie/odm/utils/init.py", line 129, in __await__
yield from self.init_class(model).__await__()
File "/home/xxxx/project/.venv/lib/python3.11/site-packages/beanie/odm/utils/init.py", line 717, in init_class
await self.init_document(cls)
File "/home/xxxx/project/.venv/lib/python3.11/site-packages/beanie/odm/utils/init.py", line 573, in init_document
self.init_document_fields(cls)
File "/home/xxxx/project/.venv/lib/python3.11/site-packages/beanie/odm/utils/init.py", line 385, in init_document_fields
cls.check_hidden_fields()
File "/home/xxxx/project/.venv/lib/python3.11/site-packages/beanie/odm/documents.py", line 1055, in check_hidden_fields
hidden_fields = [
^
File "/home/xxxx/project/.venv/lib/python3.11/site-packages/beanie/odm/documents.py", line 1058, in <listcomp>
if get_extra_field_info(field, "hidden") is True
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xxxx/project/.venv/lib/python3.11/site-packages/beanie/odm/utils/pydantic.py", line 45, in get_extra_field_info
return field.json_schema_extra.get(parameter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'function' object has no attribute 'get'
from pydantic import Field
from beanie import Document
def pop_default(s):
s.pop('default')
class Model(Document):
a: int = Field(default=1, json_schema_extra=pop_default)
Expected behavior
This should work and be compatible with Pydantic.
Describe the bug When I pass a
Callable
to thejson_schema_extra
argument ofpydantic.Field()
, I get the following error:See Pydantic Documentation
To Reproduce
Expected behavior This should work and be compatible with Pydantic.