From 3574abda28f442ec9ce0170a37b78384d9358b72 Mon Sep 17 00:00:00 2001 From: pfy5v82cw <1667039373@qq.com> Date: Sun, 9 Nov 2025 21:01:04 +0800 Subject: [PATCH] Update 0001_initial.py --- .../owntracks/migrations/0001_initial.py | 49 ++++++++++++++++--- 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/src/DjangoBlog-master/owntracks/migrations/0001_initial.py b/src/DjangoBlog-master/owntracks/migrations/0001_initial.py index 9eee55c..23733e5 100644 --- a/src/DjangoBlog-master/owntracks/migrations/0001_initial.py +++ b/src/DjangoBlog-master/owntracks/migrations/0001_initial.py @@ -1,31 +1,64 @@ # Generated by Django 4.1.7 on 2023-03-02 07:14 +# 说明:该文件为 Django 自动生成的数据迁移文件,用于创建数据库表结构 +# 生成条件:执行 makemigrations 命令时,Django 检测到 models.py 中新增 OwnTrackLog 模型后自动生成 +# 兼容版本:Django 4.1.7(迁移文件与 Django 版本强相关,修改需注意兼容性) +# 导入 Django 迁移核心模块和模型字段类 from django.db import migrations, models +# 导入 Django 时区工具(用于处理时间字段的时区一致性) import django.utils.timezone class Migration(migrations.Migration): + """ + 数据迁移类:Django 迁移系统的核心载体,用于定义数据库结构变更逻辑 + 每个迁移类对应一次数据库操作(如建表、改字段、删索引等) + """ + # 标记是否为初始迁移(首次创建模型时为 True,后续修改为 False) initial = True + # 依赖迁移列表:当前迁移依赖的其他迁移文件(为空表示无依赖) + # 若需依赖其他 app 的迁移,格式为 ['其他app名称.迁移文件名前缀'] dependencies = [ ] + # 迁移操作列表:定义具体的数据库变更操作 operations = [ + # 创建数据库表操作:对应 models.py 中的 OwnTrackLog 模型 migrations.CreateModel( + # 模型名称(必须与 models.py 中定义的类名一致) name='OwnTrackLog', + # 字段配置:与模型类中的 field 定义一一对应,决定表的列结构 fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('tid', models.CharField(max_length=100, verbose_name='用户')), + # 主键字段:BigAutoField 为自增bigint类型,Django 默认主键类型 + ('id', models.BigAutoField( + auto_created=True, # 自动创建,无需手动赋值 + primary_key=True, # 标记为主键 + serialize=False, # 不序列化(主键默认不参与序列化) + verbose_name='ID' # 后台管理界面显示的字段名称 + )), + # 用户标识字段:CharField 对应数据库 varchar 类型 + ('tid', models.CharField( + max_length=100, # 最大长度100(必填参数) + verbose_name='用户' # 后台显示名称,支持中文 + )), + # 纬度字段:FloatField 对应数据库 float 类型,存储地理纬度(如 39.9042) ('lat', models.FloatField(verbose_name='纬度')), + # 经度字段:FloatField 对应数据库 float 类型,存储地理经度(如 116.4074) ('lon', models.FloatField(verbose_name='经度')), - ('created_time', models.DateTimeField(default=django.utils.timezone.now, verbose_name='创建时间')), + # 创建时间字段:DateTimeField 对应数据库 datetime 类型 + ('created_time', models.DateTimeField( + default=django.utils.timezone.now, # 默认值:当前时区的当前时间 + verbose_name='创建时间' # 后台显示名称 + )), ], + # 模型元数据配置:对应模型类中的 Meta 内部类,影响表的整体属性 options={ - 'verbose_name': 'OwnTrackLogs', - 'verbose_name_plural': 'OwnTrackLogs', - 'ordering': ['created_time'], - 'get_latest_by': 'created_time', + 'verbose_name': 'OwnTrackLogs', # 单数形式的表名称(后台显示) + 'verbose_name_plural': 'OwnTrackLogs', # 复数形式的表名称(后台列表页显示) + 'ordering': ['created_time'], # 默认排序:按创建时间升序排列(-created_time 表示降序) + 'get_latest_by': 'created_time', # 支持使用 Model.objects.latest() 方法,默认按创建时间取最新记录 }, ), - ] + ] \ No newline at end of file