feat(家庭成员): 添加家庭成员模型并关联感悟和计划

添加家庭成员模型(FamilyMember)并关联到感悟记录(InsightRecord)和今日计划(TodayPlan)
修改相关表单、视图和模板以支持发言人功能
添加数据库迁移文件和初始化脚本
更新报告模板显示发言人信息
This commit is contained in:
2026-01-23 20:35:30 +08:00
parent 5f9bd7da3e
commit 004f528c7f
7 changed files with 109 additions and 11 deletions

View File

@@ -71,6 +71,20 @@ class PlanType(models.Model):
def __str__(self):
return self.name
class FamilyMember(models.Model):
"""家庭成员"""
name = models.CharField(max_length=20, unique=True, verbose_name="姓名")
created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间")
class Meta:
verbose_name = "家庭成员"
verbose_name_plural = "家庭成员"
ordering = ['name']
def __str__(self):
return self.name
class ReadingRecord(models.Model):
"""阅读记录表"""
date = models.DateField(default=timezone.now, verbose_name="日期")
@@ -95,6 +109,7 @@ class InsightRecord(models.Model):
"""感悟记录表"""
date = models.DateField(default=timezone.now, verbose_name="日期")
content = models.TextField(verbose_name="内容")
speaker = models.ForeignKey(FamilyMember, on_delete=models.CASCADE, verbose_name="发言人")
file = models.FileField(upload_to='insight_files/', blank=True, null=True, verbose_name="上传文件")
created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间")
@@ -129,6 +144,7 @@ class TodayPlan(models.Model):
"""今日计划表"""
date = models.DateField(default=timezone.now, verbose_name="日期")
content = models.TextField(verbose_name="内容")
speaker = models.ForeignKey(FamilyMember, on_delete=models.SET_NULL, null=True, blank=True, verbose_name="发言人")
priority = models.ForeignKey(Priority, on_delete=models.CASCADE, default=2, verbose_name="优先级")
type = models.ForeignKey(PlanType, on_delete=models.CASCADE, default=4, verbose_name="类型")
status = models.ForeignKey(Status, on_delete=models.CASCADE, default=1, verbose_name="状态")