- A+
上述的内容只是为了记录,因为在操作的时候一直没留意到使用的是AbstractBaseUser,而走了不少歪路。
AbstractUser是一个完整的用户模型
AbstractBaseUser仅包含身份验证功能,没有实际的字段。
操作流程
- APP models.py文件中引入以下内容
- from django.contrib.auth.models import AbstractBaseUser
- 在models.py文件下定义新增的字段
- # 用户模型
- class User(AbstractUser): # 注意字段后括号的内容
- # 新增以下字段
- avatar = models.ImageField(upload_to='avtar/%Y/%m', default='avtar/default.png', max_length=100, blank=True,
- verbose_name='用户头像')
- qq = models.CharField(max_length=20, blank=True, null=True, verbose_name='QQ号码')
- mobile = models.CharField(max_length=11, blank=True, unique=True, null=True, verbose_name='手机号码')
- # 字段命名
- class Meta:
- verbose_name = '用户'
- verbose_name_plural = verbose_name
- # 返回字段名
- def __str__(self):
- return self.username
- 在项目setting.py文件中自定义用户
- # blog.User 为APP名 +数据库中用户字段
- AUTH_USER_MODEL = 'blog.User'
参考内容:
https://docs.djangoproject.com/en/1.11/topics/auth/customizing/#django.contrib.auth.models.PermissionsMixin.has_perms
http://www.cnblogs.com/caseast/p/5909987.html
扩展阅读:
http://python.jobbole.com/86806/