Django打造在线教育平台_day_2:新建users app 编写models之扩展user表

Posted 起航追梦人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 __str__(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、cmd安装Pillow图片处理模块(原因是我们处自义类中用到了ImageField):

pip install pillow

5、生成新定义的users表,Tools 工具栏运行 run manage.py Task输入:

makemigrations users
migrate users
yes
#查看数据库表格输入users_userprofile创建成功

6、运行项目

 

以上是关于Django打造在线教育平台_day_2:新建users app 编写models之扩展user表的主要内容,如果未能解决你的问题,请参考以下文章

Django打造在线教育平台_day_3: 搭建后台管理系统Django自带的admin

Django打造在线教育平台_day_3:全局配置

Django打造在线教育平台_day_4: 完成注册功能

Django打造在线教育平台_day_3: 搭建后台管理系统Xadmin

Django打造在线教育平台_day_3:之处理外建搜索无效

Django打造在线教育平台_day_4: 前台逻辑的编写之配置首页与登录