Files
TermiNexus 99fd632bf1 refactor(custom-apps): doc/invite/sve/community 视图裸 ORM 收敛进各 app Manager
doc:DocManager 新增 QueryDocuments/QuerySeries 返回查询集,视图 get_queryset 改为委托;invite:新增 InviteManager(QuerySet/GetByInviteID/Create);sve:新增 SveManager(QuerySet/GetByCandidates/Upsert 支持 CreateDefaults);community:新增 CommunityManager(板块/分类/帖子/回复/点赞共 20 处,ToggleLike 封装点赞切换与计数同步,聚合查询保留原 values_list+annotate)。

视图层不再直接操作 ORM,类级 queryset 属性保留(DRF 必需);QueryPosts 收 Filters 字典以保持原边界行为。
2026-09-14 06:47:01 +08:00

34 lines
951 B
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""模块:Invite AI 面试官数据访问层
AI 面试官对话记录的数据访问收敛在此,视图层不直接操作 ORM。
所有方法遵循帕斯卡命名法。
"""
from .models import InviteConversation
class InviteManager:
"""AI 面试官对话管理器"""
@staticmethod
def QuerySet():
"""基础查询集(供 DRF queryset 复用)"""
return InviteConversation.objects.all()
@staticmethod
def GetByInviteID(InviteID):
"""按 InviteID 取对话(不存在返回 None)"""
try:
return InviteConversation.objects.get(InviteID=InviteID)
except InviteConversation.DoesNotExist:
return None
@staticmethod
def Create(InviteID, Messages, CreateTime):
"""新建对话记录"""
return InviteConversation.objects.create(
InviteID=InviteID,
Messages=Messages,
CreateTime=CreateTime,
)