Преглед изворни кода

修改保存后查询卡片查询不到

袁威 пре 2 недеља
родитељ
комит
6ed6fc94dd
1 измењених фајлова са 10 додато и 3 уклоњено
  1. 10 3
      app/api/formate_xy.py

+ 10 - 3
app/api/formate_xy.py

@@ -132,7 +132,7 @@ def _process_images_to_xy_format(card_data: dict):
     if all_images:
         for img in all_images:
             d_internal = img.detection_json
-            if d_internal and isinstance(d_internal, str):
+            if isinstance(d_internal, str):
                 d_internal = json.loads(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({})
 
             m_internal = img.modified_json
-            if m_internal and isinstance(m_internal, str):
+            if isinstance(m_internal, str):
                 m_internal = json.loads(m_internal)
 
             if m_internal:
@@ -217,7 +217,14 @@ def get_card_details(
         # 4. 遍历图片,转换格式 (使用抽取出的辅助函数)
         _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)
 
     except HTTPException: