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

在重写用户模型时报错:AttributeError: type object ‘UserProfile’ has no attribute ‘USERNAME_FIELD’

models.py

- 新建用户模型UserProfile继承自AbstractBaseUser

# -*- encoding:utf-8 -*-

from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import AbstractBaseUser
# Create your models here. class UserProfile(AbstractBaseUser): nick_name = models.CharField(max_length=50, verbose_name=u"昵称", default="")
birday = models.DateField(verbose_name=u"生日", null=True, blank=True)
gender = models.CharField(max_length=5, choices=(("male", u"男"),("female",u"女")), default="female")
address = models.CharField(max_length=100, default=u"")
mobile = models.CharField(max_length=11, null=True, blank=True)
image = models.ImageField(upload_to="image/%Y/%m", default=u"image/default.png", max_length=100) class Meta:
verbose_name = u"用户信息"
verbose_name_plural = verbose_name def __unicode__(self):
return self.username1234567891011121314151617181920212223

settings.py中也设置了AUTH_USER_MODEL

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mx_users', ] AUTH_USER_MODEL = "mx_users.UserProfile"123456789101112

debug时报错:

AttributeError: type object 'UserProfile' has no attribute 'USERNAME_FIELD'1

最后google了一圈才发现解决办法:

答案还是得去官方文档中寻找

https://docs.djangoproject.com/en/1.9/topics/auth/customizing/



在模型中新增两行代码,即可解决

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

如下:

class UserProfile(AbstractBaseUser):
identifier = models.CharField(max_length=40, unique=True)
USERNAME_FIELD = 'identifier' nick_name = models.CharField(max_length=50, verbose_name=u"昵称", default="")
birday = models.DateField(verbose_name=u"生日", null=True, blank=True)
gender = models.CharField(max_length=5, choices=(("male", u"男"),("female",u"女")), default="female")
address = models.CharField(max_length=100, default=u"")
mobile = models.CharField(max_length=11, null=True, blank=True)
image = models.ImageField(upload_to="image/%Y/%m", default=u"image/default.png", max_length

Django重写用户模型报错has no attribute 'USERNAME_FIELD'的更多相关文章

  1. Django 重写用户模型

    AUTH_USER_MODEL = 'myapp.MyUser' django——重写用户模型 Django内建的User模型可能不适合某些类型的项目.例如,在某些网站上使用邮件地址而不是用户名作为身 ...

  2. django重写用户模型

    重写一个UserProfile继承自带的AbstractUser # -*- coding: utf-8 -*- from __future__ import unicode_literals fro ...

  3. 重写用户模型时报错AttributeError: type object ‘自定义类’ has no attribute ‘USERNAME_FIELD’

    view中导入:from django.contrib.auth.models import AbstractBaseUser settings.py中设置了:AUTH_USER_MODEL='app ...

  4. django 重写用户模型 AbstractBaseUser

    https://blog.csdn.net/weixin_40744265/article/details/80745652

  5. Django之重写用户模型

    django——重写用户模型 Django内建的User模型可能不适合某些类型的项目.例如,在某些网站上使用邮件地址而不是用户名作为身份的标识可能更合理. 1.修改配置文件,覆盖默认的User模型 D ...

  6. django 学习手册 - ORM 报错集(随时更新)

    报错问题: 问题一:(1050代码) django.db.utils.InternalError: (1050, "Table 'app01_group' already exists&qu ...

  7. Oracle存储过程跨用户执行查询报错

    在Oracle中,在USERA下编写一个存储过程,该存储过程中引用了另一个用户USERB下的表或视图对象.编译该存储过程,出现编译错误.报ORA-00942: table or view does n ...

  8. django框架使用mysql报错,及两种解决方法

    1.django框架 settings.py文件中部分代码: DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3' ...

  9. Jumpserver(跳板机、堡垒机)启动jms Django连接mysql数据库报错

    解决办法 根据报错信息 , 去查看官方手册 在settings.py文件夹加入DATABASES['OPTIONS']['init_command'] = "SET sql_mode='ST ...

随机推荐

  1. <% 拼写页面

    js中 function udSelect(obj){ var val = $("#"+obj.id).val(); $("select[cd="+obj.id ...

  2. badboy——jmeter录制工具

    web网站录制工具 输入网址:红点点被选中代表在录制,然后点点点: 然后导出: 在从JMETER打开:(注意,一定要填cookie)

  3. IDEA下载安装及绿色方法

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  4. MediaFoundation初步研究

    用MediaFoundation写了个媒体播放程序,封装成了DLL,MFVideo.dll,写了个使用例子

  5. laravel 文件上传总结

    调用 store 方法会生成唯一的 ID 来作为文件名,如果想获取原件本来的名称可以使用 $file = $request->file('file'); $file->getClientO ...

  6. 【gradle】【maven】gradle 转 maven pom.xml

    在 对应的build.gradle 文件中加入以下代码,这里我是放在gradle文件的最开始位置: 这里是定义了一个task writeNewPom 来完成的. apply plugin: 'mave ...

  7. Java-JVM 类加载机制

    类的生命周期中的第一步,就是要被 JVM 加载进内存,类加载器就是来干这件事. 一.类加载器种类 系统提供了 3 种类加载器: 1.启动类加载器(Bootstrap ClassLoader) 由 C ...

  8. Python 的with关键字

    Python 的with关键字 看别人的代码时,with关键字经常会出现,博主决定梳理一下with以及python中上下文(context)的概念 1. 上下文管理器概念 Context Manage ...

  9. ceph-----常用命令

    #查看存储池 ceph osd lspools #设置存储池副本数 ceph osd pool set data size 3 #查看存储池具体信息 ceph osd pool ls detail # ...

  10. 剑指XX游戏(六) - 轻松搞定面试中的红黑树问题

    原文地址 http://blog.csdn.net/silangquan/article/details/18655795?utm_source=tuicool&utm_medium=refe ...