users应用下编辑models,包括用户信息和验证码
创建UserPrafile和VerifyCode
在users-->models.py下新增UserPrafile和VerifyCode
from django.contrib.auth.models import AbstractUser
from django.utils import timezone
from django.db import models
class UserPrafile(AbstractUser):
"""
用户
"""
nickname = models.CharField(max_length=20, null=True, blank=True, verbose_name='昵称')
mobile = models.CharField(max_length=11, null=True, blank=True, verbose_name='手机')
introduction = models.TextField(blank=True, null=True, verbose_name='简介', default='该用户很懒,啥也没写...')
avatar = models.ImageField(upload_to='users/avatars/', null=True, blank=True, verbose_name='头像', default='')
address = models.CharField(max_length=100, null=True, blank=True, verbose_name='用户住址', default='')
birthday = models.DateField(verbose_name='生日', blank=True, null=True, default=timezone.now)
# 后台展示的标题
class Meta:
verbose_name = '用户'
verbose_name_plural = verbose_name
# 后台标题下的内容展示
def __str__(self):
return self.username
def get_profile_name(self):
if self.nickname:
return self.nickname
class VerifyCode(models.Model):
"""
短信验证码
"""
code = models.CharField(max_length=10, verbose_name='验证码')
mobile = models.CharField(max_length=11, verbose_name='电话')
add_time = models.DateTimeField(default=timezone.now, verbose_name='添加时间')
class Meta:
verbose_name = '短信验证码'
verbose_name_plural = verbose_name
def __str__(self):
return self.code
修改settings.py
模型创建好后需要在settings.py做相应配置
# 自定义的user模型,若不设置会使用默认的user模型
AUTH_USER_MODEL = 'users.UserProfile'
# INSTALLED_APPS里添加apps.users
INSTALLED_APPS = [
...,
...,
'apps.users',
]
知识点
null和blank的区别
-
null=True ---针对数据库而言可以填写为空
-
blank=True ---针对表单而言可以填写为空
Meta和__str__用处
-
Meta ---表示后台展示标题
-
str ---表示标题内的展示内容
版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:http://zhangyanc.club/subject/article/django-user/
许可协议:署名-非商业性使用 4.0 国际许可协议