django 用户认证之一:用户验证模型的设计

我们的用户验证模型里面有 手机号、 邮箱、 姓名、性别、 出生日期 , 还有一个验证码需要提供

可以设置 model 如下 :

from datetime import datetime

from django.db import models

from django.contrib.auth.models import AbstractUser

class UserProfile(AbstractUser):

"""

用户

"""

name = models.CharField(max_length=30, null=True, blank=True, verbose_name="姓名")

birthday = models.DateField(null=True, blank=True, verbose_name="出生年月")

gender = models.CharField(max_length=6, choices=(("male", u"男"), ("female", "女")), default="female", verbose_name="性别")

mobile = models.CharField(null=True, blank=True, max_length=11, verbose_name="电话")

email = models.EmailField(max_length=100, null=True, blank=True, verbose_name="邮箱")

class Meta:

verbose_name = "用户"

verbose_name_plural = verbose_name

def __unicode__(self):

return self.name

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=datetime.now, verbose_name="添加时间")

class Meta:

verbose_name = "短信验证码"

verbose_name_plural = verbose_name

def __unicode__(self):

return self.code

我们的用户 model 还是【继承自 AbstractUser 】,并且按实际需求在上面做一些字段的扩展。

我们需要替换系统用户还需要在 django 的 settings.py 当中来设置(加入下面这行代码)。

AUTH_USER_MODEL = 'users.UserProfile' #重载settings的方法

我们的验证码可以也可以保存在 redis 里面, 但是 放到数据库比较直观。

猜你喜欢

转载自blog.csdn.net/qq_26128879/article/details/82431859
今日推荐