|
|
# Generated by Django 4.1.7 on 2023-03-07 09:53
|
|
|
# 导入Django相关模块
|
|
|
from django.conf import settings
|
|
|
from django.db import migrations, models
|
|
|
import django.db.models.deletion
|
|
|
import django.utils.timezone
|
|
|
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
"""迁移类,定义数据库表结构的变更操作"""
|
|
|
|
|
|
# 标识为初始迁移(首次创建表结构)
|
|
|
initial = True
|
|
|
|
|
|
# 依赖的其他迁移,此处依赖于用户模型的迁移
|
|
|
dependencies = [
|
|
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
|
]
|
|
|
|
|
|
# 具体的迁移操作列表
|
|
|
operations = [
|
|
|
# 创建OAuthConfig模型(存储OAuth第三方登录的配置信息)
|
|
|
migrations.CreateModel(
|
|
|
name='OAuthConfig',
|
|
|
fields=[
|
|
|
# 自增主键ID
|
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
|
# OAuth类型字段,限定可选值为常见第三方平台,默认值为'a'(可能需要后续调整)
|
|
|
('type', models.CharField(choices=[('weibo', '微博'), ('google', '谷歌'), ('github', 'GitHub'), ('facebook', 'FaceBook'), ('qq', 'QQ')], default='a', max_length=10, verbose_name='类型')),
|
|
|
# 应用AppKey字段
|
|
|
('appkey', models.CharField(max_length=200, verbose_name='AppKey')),
|
|
|
# 应用AppSecret字段
|
|
|
('appsecret', models.CharField(max_length=200, verbose_name='AppSecret')),
|
|
|
# 回调地址字段,默认值为百度首页
|
|
|
('callback_url', models.CharField(default='http://www.baidu.com', max_length=200, verbose_name='回调地址')),
|
|
|
# 是否启用该OAuth配置的布尔字段,默认启用
|
|
|
('is_enable', models.BooleanField(default=True, 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='修改时间')),
|
|
|
],
|
|
|
# 模型元数据配置
|
|
|
options={
|
|
|
'verbose_name': 'oauth配置', # 单数显示名称
|
|
|
'verbose_name_plural': 'oauth配置', # 复数显示名称
|
|
|
'ordering': ['-created_time'], # 排序方式:按创建时间倒序
|
|
|
},
|
|
|
),
|
|
|
# 创建OAuthUser模型(存储通过OAuth登录的用户信息)
|
|
|
migrations.CreateModel(
|
|
|
name='OAuthUser',
|
|
|
fields=[
|
|
|
# 自增主键ID
|
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
|
# 第三方平台的openid
|
|
|
('openid', models.CharField(max_length=50)),
|
|
|
# 第三方平台的用户昵称
|
|
|
('nickname', models.CharField(max_length=50, verbose_name='昵称')),
|
|
|
# 访问令牌,可为空
|
|
|
('token', models.CharField(blank=True, max_length=150, null=True)),
|
|
|
# 头像图片地址,可为空
|
|
|
('picture', models.CharField(blank=True, max_length=350, null=True)),
|
|
|
# OAuth类型(对应第三方平台)
|
|
|
('type', models.CharField(max_length=50)),
|
|
|
# 邮箱地址,可为空
|
|
|
('email', models.CharField(blank=True, max_length=50, null=True)),
|
|
|
# 额外元数据,文本类型,可为空
|
|
|
('metadata', models.TextField(blank=True, null=True)),
|
|
|
# 创建时间字段,默认值为当前时间
|
|
|
('created_time', models.DateTimeField(default=django.utils.timezone.now, verbose_name='创建时间')),
|
|
|
# 最后修改时间字段,默认值为当前时间
|
|
|
('last_mod_time', models.DateTimeField(default=django.utils.timezone.now, verbose_name='修改时间')),
|
|
|
# 关联到本地用户模型的外键,可为空,级联删除
|
|
|
('author', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='用户')),
|
|
|
],
|
|
|
# 模型元数据配置
|
|
|
options={
|
|
|
'verbose_name': 'oauth用户', # 单数显示名称
|
|
|
'verbose_name_plural': 'oauth用户', # 复数显示名称
|
|
|
'ordering': ['-created_time'], # 排序方式:按创建时间倒序
|
|
|
},
|
|
|
),
|
|
|
] |