首页 > 代码库 > Django打造在线教育平台_day_2:新建users app 编写models之扩展user表
Django打造在线教育平台_day_2:新建users app 编写models之扩展user表
1、使用pycharm创建app
Tools 工具栏运行 run manage.py Task
输入:startapp users
2、查看django生成的默认的users表auth_user,看字段能否满足需要的,不能就在users/models.py中编写models自定义user表继承auth_user的字段。
from django.db import models # AbstractUser包含的Django默认生成的user字段 from django.contrib.auth.models import AbstractUser # Create your models here. class UserProfile(AbstractUser): """继承AbstractUser类,自字义新类添加数据库字段""" # default=‘‘默认为空 nick_name = models.CharField(max_length=50, verbose_name=u‘昵称‘, default=‘‘) # null=True, blank=True允许用户不填写 birday = models.DateField(verbose_name=u‘生日‘, null=True, blank=True) # choices属性, 提供被选数据,这里性别只有男和女 gender = models.CharField(max_length=5, choices=((‘male‘,‘男‘), (‘female‘, ‘女‘)), default=‘female‘, verbose_name=u‘性别‘) #性别 address = models.CharField(max_length=100, default=u‘‘, verbose_name=u‘地址‘) mobile = models.CharField(max_length=11, null=True, blank=True, verbose_name=u‘手机号‘) # upload_to指定头像上传文件夹 image = models.ImageField(upload_to=‘image/%Y/%m‘, default=u‘image/default.png‘, verbose_name=u‘头像‘,max_length=100) class Meta: verbose_name = r‘用户信息‘ #别称 verbose_name_plural = verbose_name #单数别称 def __unicode__(self): """重载函数,使自定义字符串能打印""" return self.username
3、在MxOnline/settings.py中注册app和重载方法
# Application definition INSTALLED_APPS = [ ‘django.contrib.admin‘, ‘django.contrib.auth‘, ‘django.contrib.contenttypes‘, ‘django.contrib.sessions‘, ‘django.contrib.messages‘, ‘django.contrib.staticfiles‘, ‘users‘, # 注册App ] # 重载AUTH_USER_MODEL方法,app名称+自定义models类名 AUTH_USER_MODEL = ‘users.UserProfile‘
4、运行项目,出现如下错误,原因是我们处自义类中用到了ImageField,需要安装Pillow图片处理模块:
安装Pillow:pip install pillow,重新运行,报如下错误,原因是数据库没有users表
创建users表:
Tools 工具栏运行 run manage.py Task
输入:makemigrations users
输入:migrate users
输入:yes
查看数据库表格输入users_userprofile创建成功
再运行项目,成功
Django打造在线教育平台_day_2:新建users app 编写models之扩展user表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。