From 3c95d052cc8fc6f6370f1d2135df4ead14483996 Mon Sep 17 00:00:00 2001 From: pbskfcgaw <3079421796@qq.com> Date: Sun, 9 Nov 2025 17:59:08 +0800 Subject: [PATCH] Update 0001_initial.py --- .../accounts/migrations/0001_initial.py | 58 +++++++++++++++++-- 1 file changed, 52 insertions(+), 6 deletions(-) diff --git a/src/DjangoBlog-master/accounts/migrations/0001_initial.py b/src/DjangoBlog-master/accounts/migrations/0001_initial.py index d2fbcab..be13df7 100644 --- a/src/DjangoBlog-master/accounts/migrations/0001_initial.py +++ b/src/DjangoBlog-master/accounts/migrations/0001_initial.py @@ -7,43 +7,89 @@ import django.utils.timezone class Migration(migrations.Migration): + """ + Django数据库迁移文件 + 用于创建BlogUser模型的数据库表结构 + 这是一个初始迁移文件(initial migration) + """ + # 标记为初始迁移,Django使用这个标志来识别应用的第一个迁移 initial = True + # 依赖关系:此迁移依赖于auth应用的特定迁移 + # 确保在创建用户表之前,权限相关的表已经存在 dependencies = [ ('auth', '0012_alter_user_first_name_max_length'), ] + # 迁移操作列表:定义要执行的具体数据库操作 operations = [ + # 创建BlogUser模型的数据库表 migrations.CreateModel( - name='BlogUser', + name='BlogUser', # 模型名称 fields=[ + # 主键字段:使用BigAutoField作为自增主键 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + + # 密码字段:存储加密后的密码,最大长度128字符 ('password', models.CharField(max_length=128, verbose_name='password')), + + # 最后登录时间:记录用户最后一次登录的时间 ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), + + # 超级用户标志:标记用户是否拥有所有权限 ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + + # 用户名字段:唯一标识用户,有严格的字符限制和验证 ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), + + # 名字字段:用户的名,可选 ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), + + # 姓氏字段:用户的姓,可选 ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), + + # 邮箱字段:用户的邮箱地址,可选 ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), + + # 员工状态:标记用户是否可以登录管理后台 ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + + # 活跃状态:标记用户账户是否激活 ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), + + # 加入日期:用户注册的时间,默认为当前时间 ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + + # 昵称字段:自定义字段,用户显示名称,可选 ('nickname', models.CharField(blank=True, max_length=100, verbose_name='昵称')), + + # 创建时间:自定义字段,记录用户创建时间 ('created_time', models.DateTimeField(default=django.utils.timezone.now, verbose_name='创建时间')), + + # 最后修改时间:自定义字段,记录用户信息最后修改时间 ('last_mod_time', models.DateTimeField(default=django.utils.timezone.now, verbose_name='修改时间')), + + # 来源字段:自定义字段,记录用户创建来源(如注册渠道) ('source', models.CharField(blank=True, max_length=100, verbose_name='创建来源')), + + # 组关联:多对多关系,用户所属的权限组 ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')), + + # 用户权限:多对多关系,用户特有的权限 ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), ], + # 模型元选项 options={ - 'verbose_name': '用户', - 'verbose_name_plural': '用户', - 'ordering': ['-id'], - 'get_latest_by': 'id', + 'verbose_name': '用户', # 单数名称(用于管理后台) + 'verbose_name_plural': '用户', # 复数名称(用于管理后台) + 'ordering': ['-id'], # 默认排序:按ID降序(最新的在前) + 'get_latest_by': 'id', # 指定获取最新记录时使用的字段 }, + # 模型管理器 managers=[ + # 使用Django默认的UserManager来管理用户对象 ('objects', django.contrib.auth.models.UserManager()), ], ), - ] + ] \ No newline at end of file