Optimize the timezone datetime return encoder (#767)

* Optimize the timezone datetime return encoder

* Update the default datetime conversion
This commit is contained in:
Wu Clan
2025-08-13 11:16:58 +08:00
committed by GitHub
parent bd804e0a38
commit 1b47ab7e83
+6 -2
View File
@@ -5,7 +5,7 @@ from typing import Annotated
from pydantic import BaseModel, ConfigDict, EmailStr, Field, validate_email
from backend.core.conf import settings
from backend.utils.timezone import timezone
# 自定义验证错误信息,参考:
# https://github.com/pydantic/pydantic-core/blob/a5cb7382643415b716b1a7a5392914e50f726528/tests/test_errors.py#L266
@@ -124,5 +124,9 @@ class SchemaBase(BaseModel):
model_config = ConfigDict(
use_enum_values=True,
json_encoders={datetime: lambda x: x.strftime(settings.DATETIME_FORMAT)},
json_encoders={
datetime: lambda x: timezone.to_str(timezone.from_datetime(x))
if x.tzinfo is not None
else timezone.to_str(x)
},
)