|
@@ -132,7 +132,7 @@ def _process_images_to_xy_format(card_data: dict):
|
|
|
if all_images:
|
|
if all_images:
|
|
|
for img in all_images:
|
|
for img in all_images:
|
|
|
d_internal = img.detection_json
|
|
d_internal = img.detection_json
|
|
|
- if d_internal and isinstance(d_internal, str):
|
|
|
|
|
|
|
+ if isinstance(d_internal, str):
|
|
|
d_internal = json.loads(d_internal)
|
|
d_internal = json.loads(d_internal)
|
|
|
|
|
|
|
|
if d_internal:
|
|
if d_internal:
|
|
@@ -142,7 +142,7 @@ def _process_images_to_xy_format(card_data: dict):
|
|
|
img.detection_json = convert_internal_to_xy_format({})
|
|
img.detection_json = convert_internal_to_xy_format({})
|
|
|
|
|
|
|
|
m_internal = img.modified_json
|
|
m_internal = img.modified_json
|
|
|
- if m_internal and isinstance(m_internal, str):
|
|
|
|
|
|
|
+ if isinstance(m_internal, str):
|
|
|
m_internal = json.loads(m_internal)
|
|
m_internal = json.loads(m_internal)
|
|
|
|
|
|
|
|
if m_internal:
|
|
if m_internal:
|
|
@@ -217,7 +217,14 @@ def get_card_details(
|
|
|
# 4. 遍历图片,转换格式 (使用抽取出的辅助函数)
|
|
# 4. 遍历图片,转换格式 (使用抽取出的辅助函数)
|
|
|
_process_images_to_xy_format(card_data)
|
|
_process_images_to_xy_format(card_data)
|
|
|
|
|
|
|
|
- # 5. 验证并返回
|
|
|
|
|
|
|
+ # 5. 将 images 从 Pydantic 对象转为 dict,避免 model_validate 重复验证导致类型异常
|
|
|
|
|
+ if "images" in card_data:
|
|
|
|
|
+ card_data["images"] = [
|
|
|
|
|
+ img.model_dump() if hasattr(img, 'model_dump') else img
|
|
|
|
|
+ for img in card_data["images"]
|
|
|
|
|
+ ]
|
|
|
|
|
+
|
|
|
|
|
+ # 6. 验证并返回
|
|
|
return CardDetailResponse.model_validate(card_data)
|
|
return CardDetailResponse.model_validate(card_data)
|
|
|
|
|
|
|
|
except HTTPException:
|
|
except HTTPException:
|