94 lines
2.1 KiB
Markdown
94 lines
2.1 KiB
Markdown
|
|
# 日记模块需求说明
|
|||
|
|
|
|||
|
|
_位置:`backend/diary/models.py`, `frontend/index.html`
|
|||
|
|
核心功能 ⭐_
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 后端模型
|
|||
|
|
|
|||
|
|
### DiaryEntry 模型
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
class DiaryEntry(models.Model):
|
|||
|
|
date = DateField(unique=True) # 日期(唯一)
|
|||
|
|
title = CharField(max_length=200) # 标题
|
|||
|
|
completed_tasks = TextField() # 完成的任务
|
|||
|
|
learned = TextField() # 学到的东西
|
|||
|
|
problems = TextField() # 遇到的问题
|
|||
|
|
reflections = TextField() # 想法和反思
|
|||
|
|
improvements = TextField() # 进步点
|
|||
|
|
plans = TextField() # 明日计划
|
|||
|
|
created_at = DateTimeField() # 创建时间
|
|||
|
|
updated_at = DateTimeField() # 更新时间
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 API 接口
|
|||
|
|
|
|||
|
|
| 接口 | 方法 | 描述 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `/api/entries/` | GET | 获取所有日记 |
|
|||
|
|
| `/api/entries/{id}/` | GET | 获取单条日记 |
|
|||
|
|
| `/api/entries/` | POST | 创建日记 |
|
|||
|
|
| `/api/entries/{id}/` | PUT | 更新日记 |
|
|||
|
|
| `/api/entries/today/` | GET | 获取今天日记 |
|
|||
|
|
| `/api/entries/recent/` | GET | 最近 7 天日记 |
|
|||
|
|
| `/api/entries/stats/` | GET | 统计信息 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎨 前端展示
|
|||
|
|
|
|||
|
|
### 日历视图(主要)
|
|||
|
|
- 有日记的日期显示 📝 标记
|
|||
|
|
- 点击日期显示详情
|
|||
|
|
- 详情包含所有字段
|
|||
|
|
|
|||
|
|
### 日记列表
|
|||
|
|
- 按日期倒序
|
|||
|
|
- 显示完整内容
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔧 修改指南
|
|||
|
|
|
|||
|
|
### 可以修改的
|
|||
|
|
- ✅ 添加新字段
|
|||
|
|
- ✅ 修改样式
|
|||
|
|
- ✅ 修改 API 返回格式
|
|||
|
|
- ✅ 添加新的统计维度
|
|||
|
|
|
|||
|
|
### 不能删除的
|
|||
|
|
- ❌ DiaryEntry 模型
|
|||
|
|
- ❌ `/api/entries/` 相关 API
|
|||
|
|
- ❌ 日历组件
|
|||
|
|
- ❌ 日记详情展示
|
|||
|
|
|
|||
|
|
### 添加新字段时
|
|||
|
|
1. 修改 `models.py` 添加字段
|
|||
|
|
2. 运行 `makemigrations diary`
|
|||
|
|
3. 运行 `migrate`
|
|||
|
|
4. 更新 `serializers.py`
|
|||
|
|
5. 更新前端展示
|
|||
|
|
6. 运行 `test_frontend.py diary`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🧪 测试清单
|
|||
|
|
|
|||
|
|
修改后必须验证:
|
|||
|
|
- [ ] 日历正常显示
|
|||
|
|
- [ ] 有日记的日期有 📝 标记
|
|||
|
|
- [ ] 点击日期显示详情
|
|||
|
|
- [ ] 所有字段正确显示
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
python3 test_frontend.py diary
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
_此文档必须与代码一起维护_
|