feat: 多用户系统改造(数据模型 + 认证 API)

This commit is contained in:
maoshen
2026-04-15 02:59:36 +00:00
parent 75423d4e0e
commit e6aecd2752
13 changed files with 283 additions and 13 deletions

View File

@@ -1,5 +1,6 @@
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
class DiaryEntry(models.Model):
"""
@@ -16,7 +17,8 @@ class DiaryEntry(models.Model):
2. 确认不影响日历显示
3. 运行 test_frontend.py diary 验证
"""
date = models.DateField('日期', unique=True)
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='用户', related_name='diary_entries', null=True, blank=True)
date = models.DateField('日期')
title = models.CharField('标题', max_length=200, default='每日日记')
content = models.TextField('日记内容', blank=True, default='')
completed_tasks = models.TextField('完成的任务', blank=True, default='')
@@ -35,6 +37,7 @@ class DiaryEntry(models.Model):
ordering = ['-date']
verbose_name = '日记'
verbose_name_plural = '日记'
unique_together = ['user', 'date'] # 每个用户每天一条日记
def __str__(self):
return f"{self.date} - {self.title}"
@@ -70,6 +73,7 @@ class Experience(models.Model):
修改前阅读 docs/EXPERIENCE.md
"""
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='用户', related_name='experiences', null=True, blank=True)
title = models.CharField('标题', max_length=200)
category = models.CharField('类别', max_length=50, choices=[
('deployment', '📦 部署'),
@@ -134,7 +138,7 @@ class Comment(models.Model):
creativity = models.IntegerField('创新性', null=True, blank=True, help_text='1-10 分')
learning = models.IntegerField('学习价值', null=True, blank=True, help_text='1-10 分')
created_by = models.CharField('创建者', max_length=100, default='北极星')
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='创建者', related_name='comments', null=True, blank=True)
created_at = models.DateTimeField('创建时间', auto_now_add=True)
class Meta:
@@ -169,7 +173,8 @@ class Task(models.Model):
priority = models.CharField('优先级', max_length=20, choices=PRIORITY_CHOICES, default='medium')
progress_percent = models.IntegerField('进展百分比', default=0)
progress_notes = models.TextField('进展记录', blank=True, default='')
assigned_to = models.CharField('负责人', max_length=100, blank=True, default='码神')
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='创建者', related_name='tasks', null=True, blank=True)
assigned_to = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='负责人', related_name='assigned_tasks')
due_date = models.DateField('截止日期', null=True, blank=True)
completed_at = models.DateTimeField('完成时间', null=True, blank=True)
created_at = models.DateTimeField('创建时间', auto_now_add=True)