栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

测试平台开发:(6)Django模型,以MySQL为例(下)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

测试平台开发:(6)Django模型,以MySQL为例(下)

上一篇:测试平台开发:(5)Django模型,以MySQL为例(中)_sinat_23377479的博客-CSDN博客

根据上一篇的操作,将Django内置的表成功迁移到了数据库。我们实现注册功能所需要的用户名和密码字段在内置的user表都有了。但是在实际工作中,用户还有很多属性,下面的操作就是继承Django的AbstractUser类,再自定义一些字段。

通过本系列文章的第2篇,我们通过命令django-admin startproject group,创建了group应用(此处踩了坑,创建的应用group里面还有一个group的文件,这里要仔细,可以直接把里面的group文件包拖到根目录下,删掉另一个group文件夹,不然迁移会失败)

1)在group文件夹下新增models.py,输入下面的代码

from django.db import models
from django.contrib.auth.models import AbstractUser


# Create your models here.
class users(AbstractUser):  # 继承Django内置的用户类,可自定义字段
    # 邮件字段暂未用到,可设置为非必填
    email = models.EmailField('邮箱', max_length=100, default='')
    create_time = models.DateTimeField('创建时间', auto_now=True)
    last_login = models.DateTimeField('最后一次登录', auto_now=True)

2)在group文件夹下新增apps.py,输入以下代码

from django.apps import AppConfig


class GroupConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'group'

3)在项目根目录的settings.py增加配置:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'group', # 这里加上应用
]
AUTH_USER_MODEL = 'group.users'  #  增加这条

 如果迁移失败,可以对照上图项目结构,看是否一致。

4)打开终端,输入命令

python3 manage.py makemigrations group

如果没有报错且生成了迁移文件,则继续输入命令

python3 manage.py migrate

看到下图输出则表示迁移成功

查看数据库,可以看到刚迁移过去的users表

 

可能遇到的问题,迁移时报错:

raise InconsistentMigrationHistory(

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency group.0001_initial on database 'default'.

遇到这种情况,可以先把之前迁移过去的表全部删除,再执行一遍迁移命令即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/754720.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号