From 148592686fb55ab5a385e9079d704f9721e0087a Mon Sep 17 00:00:00 2001 From: Windpicker-owo <3431391539@qq.com> Date: Sat, 1 Nov 2025 13:57:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(database):=20=E4=BF=AE=E5=A4=8Dget=5For=5Fc?= =?UTF-8?q?reate=E8=BF=94=E5=9B=9E=E5=85=83=E7=BB=84=E7=9A=84=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 所有get_or_create调用解包(instance, created)元组 - 更新函数返回类型: get_or_create_person, get_or_create_chat_stream返回tuple - 修复store_action_info, update_relationship_affinity中的get_or_create调用 - 重要:get_or_create遵循Django ORM约定,返回(instance, created)元组 --- src/common/database/api/specialized.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/common/database/api/specialized.py b/src/common/database/api/specialized.py index 3d7327102..7ebd37c32 100644 --- a/src/common/database/api/specialized.py +++ b/src/common/database/api/specialized.py @@ -89,7 +89,7 @@ async def store_action_info( ) # 使用get_or_create保存记录 - saved_record = await _action_records_crud.get_or_create( + saved_record, created = await _action_records_crud.get_or_create( defaults=record_data, action_id=action_id, ) @@ -183,7 +183,7 @@ async def get_or_create_person( platform: str, person_id: str, defaults: Optional[dict[str, Any]] = None, -) -> Optional[PersonInfo]: +) -> tuple[Optional[PersonInfo], bool]: """获取或创建人员信息 Args: @@ -192,7 +192,7 @@ async def get_or_create_person( defaults: 默认值 Returns: - 人员信息实例 + (人员信息实例, 是否新创建) """ return await _person_info_crud.get_or_create( defaults=defaults or {}, @@ -247,7 +247,7 @@ async def get_or_create_chat_stream( stream_id: str, platform: str, defaults: Optional[dict[str, Any]] = None, -) -> Optional[ChatStreams]: +) -> tuple[Optional[ChatStreams], bool]: """获取或创建聊天流 Args: @@ -256,7 +256,7 @@ async def get_or_create_chat_stream( defaults: 默认值 Returns: - 聊天流实例 + (聊天流实例, 是否新创建) """ return await _chat_streams_crud.get_or_create( defaults=defaults or {}, @@ -434,7 +434,7 @@ async def update_relationship_affinity( """ try: # 获取或创建关系 - relationship = await _user_relationships_crud.get_or_create( + relationship, created = await _user_relationships_crud.get_or_create( defaults={"affinity": 0.0, "interaction_count": 0}, platform=platform, user_id=user_id,