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://example.com/article/django-user/