
功能特性: - JWT用户认证系统 - 日报CRUD管理 - 三级权限控制 - 多维度搜索过滤 - 统计分析功能 - 评论互动系统 - 响应式Cool Admin界面 - 暗色主题支持 技术栈: - 后端:Django 4.2.7 + DRF + SimpleJWT - 前端:Vue 3 + Element Plus + Pinia - 数据库:SQLite/PostgreSQL - 部署:Docker + Nginx 包含内容: - 完整的后端API代码 - 现代化前端界面 - 数据库迁移文件 - 部署脚本和文档 - 演示页面和测试工具
71 lines
3.7 KiB
Python
71 lines
3.7 KiB
Python
# Generated by Django 4.2.7 on 2025-09-13 05:47
|
|
|
|
from django.conf import settings
|
|
import django.core.validators
|
|
from django.db import migrations, models
|
|
import django.db.models.deletion
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='DailyReport',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('work_summary', models.TextField(validators=[django.core.validators.MinLengthValidator(10, message='工作总结至少需要10个字符')], verbose_name='工作总结')),
|
|
('next_day_plan', models.TextField(validators=[django.core.validators.MinLengthValidator(10, message='明日计划至少需要10个字符')], verbose_name='明日计划')),
|
|
('difficulties', models.TextField(blank=True, help_text='可选:描述工作中遇到的问题或困难', null=True, verbose_name='遇到的困难')),
|
|
('suggestions', models.TextField(blank=True, help_text='可选:对工作或团队的建议', null=True, verbose_name='建议或意见')),
|
|
('report_date', models.DateField(help_text='填写日报对应的日期', verbose_name='日报日期')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='提交时间')),
|
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
|
('is_draft', models.BooleanField(default=False, help_text='是否为草稿', verbose_name='草稿状态')),
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='daily_reports', to=settings.AUTH_USER_MODEL, verbose_name='提交人')),
|
|
],
|
|
options={
|
|
'verbose_name': '日报',
|
|
'verbose_name_plural': '日报',
|
|
'ordering': ['-report_date', '-created_at'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ReportComment',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('content', models.TextField(verbose_name='评论内容')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='评论时间')),
|
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
|
('report', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='comments', to='daily_report.dailyreport', verbose_name='关联日报')),
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='评论人')),
|
|
],
|
|
options={
|
|
'verbose_name': '日报评论',
|
|
'verbose_name_plural': '日报评论',
|
|
'ordering': ['-created_at'],
|
|
},
|
|
),
|
|
migrations.AddIndex(
|
|
model_name='dailyreport',
|
|
index=models.Index(fields=['user', 'report_date'], name='daily_repor_user_id_f18440_idx'),
|
|
),
|
|
migrations.AddIndex(
|
|
model_name='dailyreport',
|
|
index=models.Index(fields=['report_date'], name='daily_repor_report__ee6559_idx'),
|
|
),
|
|
migrations.AddIndex(
|
|
model_name='dailyreport',
|
|
index=models.Index(fields=['-created_at'], name='daily_repor_created_005929_idx'),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='dailyreport',
|
|
unique_together={('user', 'report_date')},
|
|
),
|
|
]
|