目录:
1.django app设计
2.根据各个app设计models
3.数据表生成与修改:根据各个app的models直接生成数据表
本次学习项目:用户模块&课程模块&授课教师和授课机构模块:
1.设计user app的models:
新建app:run manager task-startapp users.
在设计user表之前,我们需要了解一下django本身给我们提供的user表有哪些字段。
id:主键
password:密码
last_login:django自动为我们记录用户最后登录的时间
is_superuser:是否超级用户
is_staff:是否是员工
is_active:用户是否是激活状态
date_joined:用户注册时间
我们本次项目中,user表不具备的字段:
昵称
生日
性别
区域
手机
邮箱
所以我们需要自定义user表,我们希望继承user表中原有的字段,但是又希望加入我们自己的字段,我们可以直接继承django的AbstractUser
# _*_ coding: utf-8 _*_
from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.
class UserProfile(AbstractUser):
nick_name = models.CharField(max_length=50, verbose_name=u"昵称",default="")
briday = models.DateField(verbose_name=u"生日", null=True, blank=True)
gender = models.CharField(max_length=10,choices=(("male",u"男"),("female",u"女")), default="female")
address = models.CharField(max_length=100,default=u"")
mobile = models.CharField(max_length=11,null=True, blank=True)
image = models.ImageField(upload_to="image/%Y/%m",default=u"image/default.png",max_length=100)
class Meta:
verbose_name = "用户信息"
verbose_name_plural = verbose_name
def __unicode__(self):
return self.username
在setting中注册apps:user,并重载一个setting的方法:AUTH_USER_MODEL = “users.UserProfile”
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'users'
]
AUTH_USER_MODEL = "users.UserProfile"
以上,用我们自定义的UserProfile去替换默认的users就完成了。