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/oauth/migrations/0001_initial.py

84 lines
4.6 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-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'], # 排序方式:按创建时间倒序
},
),
]