You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Django/doc/accounts/migrations/0001_initial.py

77 lines
5.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Generated by Django 4.1.7 on 2023-03-02 07:14
# 以上注释为Django自动生成标识该迁移文件由Django 4.1.7版本在2023-03-02 07:14生成
# 导入Django内置的用户模型相关模块
import django.contrib.auth.models
# 导入Django内置的用户验证器
import django.contrib.auth.validators
# 从django.db导入迁移和模型相关类
from django.db import migrations, models
# 导入Django的时区工具
import django.utils.timezone
# 定义迁移类继承自migrations.Migration
class Migration(migrations.Migration):
# 标识这是初始迁移(首次创建模型的迁移)
initial = True
# 依赖的其他迁移文件这里依赖auth应用的0012_alter_user_first_name_max_length迁移
dependencies = [
('auth', '0012_alter_user_first_name_max_length'),
]
# 迁移操作列表,包含要执行的数据库操作
operations = [
# 创建BlogUser模型的迁移操作
migrations.CreateModel(
name='BlogUser', # 模型名称
fields=[ # 模型字段定义列表
# 自增主键字段BigAutoField适用于大数据量场景
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# 密码字段最大长度128显示名称为'password'
('password', models.CharField(max_length=128, verbose_name='password')),
# 最后登录时间字段,可为空且允许空白,显示名称为'last login'
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
# 是否为超级用户字段默认False包含帮助文本和显示名称
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
# 用户名字段包含错误信息、帮助文本、最大长度150、唯一约束、验证器和显示名称
('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')),
# 名字段允许空白最大长度150显示名称为'first name'
('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')),
# 姓字段允许空白最大长度150显示名称为'last name'
('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
# 邮箱字段允许空白最大长度254显示名称为'email address'
('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
# 是否为管理员可登录admin站点默认False包含帮助文本和显示名称
('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
# 是否激活字段默认True包含帮助文本建议通过此选项禁用账户而非删除和显示名称
('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'
('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
# 自定义昵称字段允许空白最大长度100显示名称为'昵称'
('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='修改时间')),
# 自定义创建来源字段允许空白最大长度100显示名称为'创建来源'
('source', models.CharField(blank=True, max_length=100, verbose_name='创建来源')),
# 与auth.Group的多对多关系用于用户组权限管理包含帮助文本、关联名称和显示名称
('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')),
# 与auth.Permission的多对多关系用于用户单独权限管理包含帮助文本、关联名称和显示名称
('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'], # 排序方式按id降序
'get_latest_by': 'id', # 获取最新记录的依据字段id
},
managers=[ # 模型的管理器配置
# 使用Django内置的UserManager作为模型的管理器
('objects', django.contrib.auth.models.UserManager()),
],
),
]