Django Ninja 不使用 Pydantic 的 JSON 序列化模式

作者: oliverhaas创建于 2025年12月11日更新于 2026年5月24日

当序列化包含 `set` 字段的一个 pydantic 模型时,我希望 django-ninja 在内部会做出类似这样的操作: `instance.model_dump(mode="json")` (转换 `set` 为列表, `UUID` 为字符串等)。但实际发生的情况是 (简化版): `json.dumps(instance.model_dump(), cls=DjangoJSONEncoder)` ( `set` 保持为 `set`, 无法进一步编码, 因此出现异常)。这是否有特定的原因? 即使只是在这里做一个小的调整 https://GitHub.com/vitalik/django-ninja/blob/9b7c4f122554dfb4a5959b0bf90b0c856d72cbed/ninja/responses.py#L24 使用 `.model_dump(mode="json")` 也可能解决此错误和类似的错误。主要是因为我怀疑自己是否在哪里遗漏了什么, 因为使用 pydantic 的序列化似乎是正确的方向。还有相关的问题 (例如 #247)。

内容来源: vitalik/django-ninja