关于用户的模型类
#关于用户信息 <字段来自于个人中心个人信息页>
class UserProfile(AbstractUser):
#昵称
nickname = models.CharField(max_length=30,verbose_name=u'昵称',null=True,blank=True)
#生日
birthday = models.DateField(verbose_name=u'生日',null=True,blank=True)
#性别
sex = models.CharField(
max_length=10,choices=(('woman','女'),('man',u'男')),
default='man',verbose_name=u'性别'
)
#地址
address = models.CharField(max_length=50,verbose_name=u'地址',default='')
#手机号
mobile = models.CharField(max_length=11,verbose_name=u'手机号',default='')
#头像 /%Y/%m 年/月 ImageField需要设置字段长度
profile_photo = models.ImageField(
upload_to='profile_photo/%Y/%m',
verbose_name=u'用户头像',
default='profile_photo/default.png',
max_length=100
)
#设置 meta信息 即是后台显示模型类的名字
class Meta:
verbose_name = u'用户信息'
verbose_name_plural = verbose_name
#重载str方法 在后台显示当前这个类的名字,使后台不再直接显示object
def __str__(self):
#username是父类的字段
return self.username
#邮箱验证码
class EmailCord(models.Model):
#验证码
code = models.CharField(max_length=30,verbose_name=u'验证码')
#需要验证的邮箱
email = models.EmailField(max_length=50,verbose_name=u'邮箱')
#验证的类型
send_type = models.CharField(
max_length=30,
choices=(('register',u'注册'),('forget',u'忘记密码'),('update','修改密码')),
verbose_name=u'验证类型'
)
#now()是编译的时间 now是实例化的时间
send_time = models.DateTimeField(
default= datetime.now,
verbose_name=u'发送时间'
)
#后台显示表的名字
class Meta:
verbose_name = u'邮箱验证码'
verbose_name_plural = verbose_name
#重载str方法
def __str__(self):
return self.email
#轮播图
class Banner(models.Model):
#标题
title = models.CharField(max_length=100,verbose_name=u'轮播图标题')
#照片
image = models.ImageField(
upload_to='Banner_image/%Y%m',
verbose_name=u'轮播图图片'
)
#点击轮播图转向的url
url = models.URLField(max_length=100,verbose_name=u'访问地址')
#轮播图显示的顺序
index = models.IntegerField(default=100,verbose_name=u'访问顺序')
#添加的时间
add_time = models.DateTimeField(
default=datetime.now,
verbose_name=u'添加时间'
)
class Meta:
verbose_name = u'轮播图'
verbose_name_plural = verbose_name
def __str__(self):
return '{0}(位于第{1}位)'.format(self.title,self.index)
在setting中配置模型类
#此处重载为了使userProfile
AUTH_USER_MODEL = 'users.UserProfile'