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 字典以保持原边界行为。
34 lines
951 B
Python
34 lines
951 B
Python
"""模块: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,
|
||
)
|