关于设置AUTH_USER_MODEL出现的问题

在运行的时候出现了一个bug:

AttributeError: type object ‘UserProfile’ has no attribute 'USERNAME_FIELD’

网上提供的解决方案是:在user.models里面添加:

Django重写用户模型报错has no attribute 'USERNAME_FIELD'

  1. identifier = models.CharField(max_length=40, unique=True)
  2. USERNAME_FIELD = 'identifier'

但这样出现的问题是:identifier不是我们要设置的量。同时在创建超级用户时,添加完成identifier就出现警告!

在寻找解决方案发现,缺少了

http://www.it1352.com/636287.html

  1. objects = UserManager()

运行之后,虽然可以设置密码了,但是邮箱设置,昵称设置依然无效

以下代码是通过查找“USERNAME_FIELD”关键字,在程序里面找到的代码;

  1. class AbstractUser(AbstractBaseUser, PermissionsMixin):
  2. """
  3. An abstract base class implementing a fully featured User model with
  4. admin-compliant permissions.
  5. Username and password are required. Other fields are optional.
  6. """
  7. username_validator = UnicodeUsernameValidator()
  8. username = models.CharField(
  9. _('username'),
  10. max_length=150,
  11. unique=True,
  12. help_text=_('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'),
  13. validators=[username_validator],
  14. error_messages={
  15. 'unique': _("A user with that username already exists."),
  16. },
  17. )
  18. first_name = models.CharField(_('first name'), max_length=30, blank=True)
  19. last_name = models.CharField(_('last name'), max_length=150, blank=True)
  20. email = models.EmailField(_('email address'), blank=True)
  21. is_staff = models.BooleanField(
  22. _('staff status'),
  23. default=False,
  24. help_text=_('Designates whether the user can log into this admin site.'),
  25. )
  26. is_active = models.BooleanField(
  27. _('active'),
  28. default=True,
  29. help_text=_(
  30. 'Designates whether this user should be treated as active. '
  31. 'Unselect this instead of deleting accounts.'
  32. ),
  33. )
  34. date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
  35. objects = UserManager()
  36. EMAIL_FIELD = 'email'
  37. USERNAME_FIELD = 'username'
  38. REQUIRED_FIELDS = ['email']
  39. class Meta:
  40. verbose_name = _('user')
  41. verbose_name_plural = _('users')
  42. abstract = True
  43. def clean(self):
  44. super().clean()
  45. self.email = self.__class__.objects.normalize_email(self.email)
  46. def get_full_name(self):
  47. """
  48. Return the first_name plus the last_name, with a space in between.
  49. """
  50. full_name = '%s %s' % (self.first_name, self.last_name)
  51. return full_name.strip()
  52. def get_short_name(self):
  53. """Return the short name for the user."""
  54. return self.first_name
  55. def email_user(self, subject, message, from_email=None, **kwargs):
  56. """Send an email to this user."""
  57. send_mail(subject, message, from_email, [self.email], **kwargs)
  58. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

问题找到,添加的类出错。在视频讲解中继承的类是“AbstractUser”,而我使用的类是“AbstractBaseUser”。继承出错了!

# 关于设置AUTH_USER_MODEL出现的问题的更多相关文章

  1. Django auth认证

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

  2. django用户认证系统——拓展 User 模型

    Django 用户认证系统提供了一个内置的 User 对象,用于记录用户的用户名,密码等个人信息.对于 Django 内置的 User 模型, 仅包含以下一些主要的属性: username,即用户名 ...

  3. Django的认证系统

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

  4. Django之自带的认证系统 auth模块

    01-Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Dj ...

  5. Django自带的用户认证auth模块

    一.介绍 基本上在任何网站上,都无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能. 使用Django,我们可以不需要自己写这些功能,因为Dj ...

  6. Django之auth模块

    http://www.cnblogs.com/liwenzhou/p/9030211.html 1.首先导入auth模块 from django.contrib import auth 2.创建aut ...

  7. Python-Django-Ajax进阶2

    -forms组件的渲染错误信息 在模板中:<span>{{ foo.errors.0 }}</span> -forms使用bootstrap样式 widget=widgets. ...

  8. cnblog项目--20190309

    第一个真正意义的Django项目 ! 预计时间5天  20190309--20190314 目标:学会Django的使用,理解模块关系!   querset  相当于一个存放列表的字典     day ...

  9. REST framework---基于类的视图

    一.程序设计 1.路由设计 from django.conf.urls import url from django.contrib import admin from app import view ...

随机推荐

  1. Vue双向绑定的实现原理系列(一):Object.defineproperty

    了解Object.defineProperty() github源码 Object.defineProperty()方法直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. ...

  2. leetcode题目2.两数相加(中等)

    题目描述: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来 ...

  3. Spring 自动注入,管理JavaBean

    声明一个类Pig,类上使用注解@Component 声明一个类Father,类上使用注解@Component 一个成员变量,使用注解@Autowired 在Spring的xml文件中,配置自动扫描注解 ...

  4. MySort作业与IO-Myhead

    一.MySort 1.题目要求 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设计) 参考 Sort的实现.提交博客链接. 2.产品代码 im ...

  5. mysql统计前24小时数据没有补0

    SELECT t1. HOUR HOUR, COUNT(t2. HOUR) count FROM ( SELECT DATE_FORMAT( HOUR), '%y-%m-%d %H' ) HOUR F ...

  6. Nginx事件管理之事件处理流程

    1. 概述 事件处理要解决的两个问题: "惊群" 问题,即多个 worker 子进程监听相同端口时,在 accept 建立新连接时会有争抢,引发不必要的上下文切换, 增加系统开销. ...

  7. 编写可维护的JavaScript代码(部分)

    平时使用的时VS来进行代码的书写,VS会自动的将代码格式化,所有写了这么久的JS代码,也没有注意到这些点.看了<编写可维护的javascript代码>之后,做了些笔记. var resul ...

  8. koa 基础(三)路由的另一种写法

    1.配置路由 app.js // 引入模块 const Koa = require('koa'); const router = require('koa-router')(); /*引入是实例化路由 ...

  9. LC 465. Optimal Account Balancing 【lock,hard】

    A group of friends went on holiday and sometimes lent each other money. For example, Alice paid for ...

  10. Session技术入门代码案例

    package com.loaderman.demo; import javax.servlet.ServletException; import javax.servlet.http.*; impo ...