|
|
@@ -2,7 +2,7 @@ import json
|
|
|
from datetime import datetime
|
|
|
from pathlib import Path
|
|
|
from typing import Optional, Dict, Any, List
|
|
|
-from pydantic import BaseModel, field_validator, Field
|
|
|
+from pydantic import BaseModel, field_validator, Field, field_serializer
|
|
|
from enum import Enum
|
|
|
|
|
|
|
|
|
@@ -86,6 +86,13 @@ class CardImageResponse(BaseModel):
|
|
|
raise ValueError("Invalid JSON string in database")
|
|
|
return v
|
|
|
|
|
|
+ # 拦截序列化,格式化掉中间的 "T"
|
|
|
+ @field_serializer('created_at', 'updated_at', check_fields=False)
|
|
|
+ def serialize_datetime(self, dt: datetime, _info):
|
|
|
+ if dt is not None:
|
|
|
+ return dt.strftime('%Y-%m-%d %H:%M:%S')
|
|
|
+ return dt
|
|
|
+
|
|
|
|
|
|
class CardDetailResponse(BaseModel):
|
|
|
"""用于响应单个卡牌详细信息的模型 (主键为 id)"""
|
|
|
@@ -108,6 +115,13 @@ class CardDetailResponse(BaseModel):
|
|
|
class Config:
|
|
|
from_attributes = True
|
|
|
|
|
|
+ # 拦截序列化,格式化掉中间的 "T"
|
|
|
+ @field_serializer('created_at', 'updated_at', check_fields=False)
|
|
|
+ def serialize_datetime(self, dt: datetime, _info):
|
|
|
+ if dt is not None:
|
|
|
+ return dt.strftime('%Y-%m-%d %H:%M:%S')
|
|
|
+ return dt
|
|
|
+
|
|
|
|
|
|
class ImageJsonPairResponse(BaseModel):
|
|
|
id: int
|
|
|
@@ -159,6 +173,13 @@ class CardListDetailResponse(BaseModel):
|
|
|
class Config:
|
|
|
from_attributes = True
|
|
|
|
|
|
+ # 拦截序列化,格式化掉中间的 "T"
|
|
|
+ @field_serializer('created_at', 'updated_at', check_fields=False)
|
|
|
+ def serialize_datetime(self, dt: datetime, _info):
|
|
|
+ if dt is not None:
|
|
|
+ return dt.strftime('%Y-%m-%d %H:%M:%S')
|
|
|
+ return dt
|
|
|
+
|
|
|
|
|
|
class CardListWithTotal(BaseModel):
|
|
|
total: int
|