Open hf-sheese opened 4 months ago
Up until now only dicts are supported as you noticed. Will label this as a possible enhancement. Expectation wise we are talking about transparent handling of my_model.model_dump()
, right?
Our expectation is:
If my endpoint returns a Pydantic model, then the model.model_dump(mode="json")
should be called automatically and the dumped dict should be passed on to the jinja2 template.
My best guess is, that it could be handled around here:
Instead of only checking for instance of mapping there should also be a check like:
if isinstance(response, BaseModel):
response = response.model_dump(mode="json")
if not isinstance(response, Mapping):
...
A type-checker will complain about this, but I guess it would work.
I want to write a simple healthcheck endpoint with pydantic and call it using htmx. The endpoint returns a pydantic model. However, if I want to run the endpoint, I get: "AttributeError: 'dict' object has no attribute 'encode'. I have to manually convert the model to a dictionary using model_dump to solve this problem. Here is the sourcecode: FastAPI endpoint:
htmx wrapper:
pydantic model: