• 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、运行项目

  • 相关阅读:
    JAVA中获取当前系统时间
    struts2文件下载及 <param name="inputName">inputStream</param>的理解
    struts2文件下载,动态设置资源地址
    IE8上传文件时文件本地路径变成"C:fakepath"的问题
    Java设置session超时(失效)的三种方式
    学一点Git--20分钟git快速上手
    关于服务器响应,浏览器请求的理解以及javaWeb项目的编码问题
    GBK、GB2312、iso-8859-1之间的区别
    mysql的多表查询
    mysql错误:“ Every derived table must have its own alias”(每个派生出来的表都必须有一个自己的别名)
  • 原文地址:https://www.cnblogs.com/jp-mao/p/7069441.html
Copyright © 2020-2023  润新知