微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

项目:Django+Xadmin打造上线标准的在线教育平台-创建用户app

注意:使用版本是python3

创建用户相关app

创建用户相关app,名称为users。

文件目录如下:

参考:django利用pycharm更加方面创建app

Models.py相关信息

用户相关的数据表创建,修改users/models.py文件

# -*- coding:utf-8 -*-
from __future__ import unicode_literals
from django.db import models
# AbstractUser 是django自带用户表
from django.contrib.auth.models import AbstractUser
from datetime import datetime
class UserProfile(AbstractUser):
    # password = models.CharField(max_length=128, verbose_name='密码', default='', blank=False)
    # # 密码字段,长度128,认值为空字符,前端不允许用户输入空
    # last_login = models.DateTimeField(verbose_name='登录日期', null=True)
    # # null=True 允许为空
    # is_superuser = models.BooleanField(max_length=1, verbose_name='用户身份', name=False)
    # username = models.CharField(max_length=150, verbose_name='用户名', null=False, blank=False)
    # first_name = models.CharField(max_length=30, verbose_name='拓展1', null=False)
    # last_name = models.CharField(max_length=30, verbose_name='拓展2', null=False)
    # email = models.EmailField(max_length=254, verbose_name='邮箱', blank=False)
    # is_staff = models.BooleanField(max_length=1, verbose_name='是否是员工', null=False)
    # is_active = models.BooleanField(max_length=1, verbose_name='是否激活', null=False)
    # date_joined = models.DateTimeField(verbose_name='注册日期', null=True)
    nick_name = models.CharField(max_length=50, verbose_name='昵称', default='')
    birday = models.DateField(verbose_name='生日', null=True)
    gender = models.CharField(max_length=5, verbose_name='性别', choices=(("male", "男"), ("female", "女")), default='male')
    # choices=(("male", "女"))  表示gener该字段只能输入male和female
    # default='male' 认为male
    address = models.CharField(max_length=100, verbose_name='地区', default='')
    mobile = models.CharField(max_length=11, verbose_name='手机', null=True, blank=True)
    image = models.ImageField(upload_to='image/%Y/%m', verbose_name='头像', default='image/default.png', max_length=100)
    # upload_to='image/%Y/%m'
    class Meta:
        verbose_name = '用户信息表'
        verbose_name_plural = verbose_name
    def __str__(self):
        return self.username
class EmailVerifyRecord(models.Model):
    code = models.CharField(max_length=20, verbose_name='验证码')
    email = models.EmailField(max_length=50, verbose_name='邮箱')
    send_type = models.CharField(max_length=10, choices=(('register', '注册'), ('forget', '找回密码')), verbose_name='邮箱验证类型')
    send_time = models.DateTimeField(verbose_name='生成时间', default=datetime.Now)
    class Meta:
        verbose_name = '用户邮箱验证码表'
        verbose_name_plural = verbose_name
class Banner(models.Model):
    title = models.CharField(max_length=100, verbose_name='轮播图标题')
    image = models.ImageField(upload_to='banner/%Y/%m', verbose_name='轮播图片', max_length=100)  # 图片路径banner/%Y/%m  /年/月
    url = models.URLField(max_length=200, verbose_name='轮播图访问地址')
    index = models.ImageField(default=100, verbose_name='轮播图顺序')
    add_time = models.DateTimeField(default=datetime.Now, verbose_name='轮播图添加时间')
    class Meta:
        verbose_name = '网站轮播图表'
        verbose_name_plural = verbose_name

MxOnline\settings.py信息添加

INSTALLED_APPS = [
    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'users' # 新添加app名字
]

# 设置覆盖认的User模型,其值引用一个自定义的模型

AUTH_USER_MODEL = 'users.UserProfile'

执行命令生成表:

参考:django利用pycharm更加方面使用django命令

makemigrations
migrate


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐