feat: cms users institution department manager

This commit is contained in:
2026-06-11 10:37:29 +08:00
parent 1dc9141856
commit 32915bc6b4
39 changed files with 2403 additions and 75 deletions
@@ -0,0 +1,21 @@
# Generated by Django 5.2.14 on 2026-06-10 08:42
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('training', '0002_initial'),
]
operations = [
migrations.AlterModelOptions(
name='trainingrecord',
options={'managed': False, 'verbose_name': '训练记录', 'verbose_name_plural': '训练记录'},
),
migrations.AlterModelOptions(
name='trainingscoredetail',
options={'managed': False, 'verbose_name': '评分明细', 'verbose_name_plural': '评分明细'},
),
]
+11 -2
View File
@@ -3,9 +3,16 @@ from apps.common.models import BaseModel
from apps.user.models import User
from apps.case.models import CaseBase
# ─── 只读镜像(fastapi 属主)────────────────────────────────────────────────────
# 训练相关表(training_record / training_session / training_submission /
# user_learning_profiles 等)的 schema 属主是 fastapi 服务。Django 侧一律 managed=False、
# 只读接入,仅供 CMS 查询训练记录/统计,不写。
# ⚠️ 下方字段为当前最佳镜像,正式接入前应以 `python manage.py inspectdb` 对真实库反向校准
# (真实表清单见《项目架构设计.md》第二节;注意真实库中没有 training_score_detail)。
class TrainingRecord(BaseModel):
"""训练记录表"""
"""训练记录表(只读,fastapi 属主,managed=False"""
TRAINING_MODE_CHOICES = [
('novice', '新手'),
('practice', '练习'),
@@ -61,6 +68,7 @@ class TrainingRecord(BaseModel):
rag_context_version = models.CharField('知识上下文版本', max_length=50, blank=True)
class Meta:
managed = False
db_table = 'training_record'
verbose_name = '训练记录'
verbose_name_plural = '训练记录'
@@ -70,7 +78,7 @@ class TrainingRecord(BaseModel):
class TrainingScoreDetail(BaseModel):
"""评分明细表"""
"""评分明细表(只读占位,managed=False;真实 fastapi 库无此表,接入时以真实 schema 为准)"""
id = models.BigAutoField(primary_key=True)
record = models.ForeignKey(
TrainingRecord, on_delete=models.CASCADE,
@@ -88,6 +96,7 @@ class TrainingScoreDetail(BaseModel):
comment = models.TextField('评语', blank=True)
class Meta:
managed = False
db_table = 'training_score_detail'
verbose_name = '评分明细'
verbose_name_plural = '评分明细'