Django 继承AbstractUser扩展用户模型 by:授客 QQ:1033553122 测试环境 Win 10 Python 3.5.4 Django-2.0.13.tar.gz 官方下载地址...AbstractUser 的拓展方式进行拓展(如果已经使用了Django的内置模型,Django会为其生成相关数据库迁移文件和数据库表,采用继承方式拓展会比较麻烦。)...用户认证系统使用我们自定义的用户模型,必须在项目settings.py 里通过 AUTH_USER_MODEL 指定自定义用户模型,如下带背景色部分的内容 ...略 TEMPLATE_DIRS = (...os.path.join(BASE_DIR, 'templates'), ) AUTH_USER_MODEL = 'mysite.User' 注意变量值的格式:appName.CustomeUserModel...便会使用我们自定义的用户模型作为默认的用户模型了 注意:一定要在配置好 AUTH_USER_MODEL 变量后再迁移数据库 参考链接 https://www.cnblogs.com/AmilyWilly
中设置AUTH_USER_MODEL: # settings.py # 格式为 "django_app名>...." AUTH_USER_MODEL = "myapp.NewUser" 在models.py中使用 # models.py from django.conf import...1.修改配置文件,覆盖默认的User模型 Django允许你通过修改setting.py文件中的 AUTH_USER_MODEL 设置覆盖默认的User模型,其值引用一个自定义的模型。...AUTH_USER_MODEL = 'myapp.MyUser' 上面的值表示Django应用的名称(必须位于INSTALLLED_APPS中)和你想使用的User模型的名称。...警告 : 1.确保 AUTH_USER_MODEL 引用的模型在所属app中第一个迁移文件中被创建 由于Django的可交换模型的动态依赖特性的局限,你必须确保 AUTH_USER_MODEL 引用的模型在所属
Django内置的User对象,已经包含了一些主要的属性,如username、password、email等,但实际情况可能还需要昵称、头像等其他属性,仅仅使用内置的User属性是不够的。...class User(AbstractUser): class Meta(AbstractUser.Meta): swappable = 'AUTH_USER_MODEL' 由此可见...model中使用 继承AbstractUser from django.contrib.auth.models import AbstractUser class MyUser(AbstractUser...): pass 全局settings.py中设置 覆盖默认的user model AUTH_USER_MODEL = 'app.MyUser' 在admin.py中注册MyUser from django.contrib
它提供所有 Django 权限类必须的方法和字段。...Django 允许通过修改 settings.py 文件中的 AUTH_USER_MODEL 设置覆盖默认的 User 模型,其值引用一个自定义的模型。...# AUTH_USER_MODEL 这个属性是 django 内置的,会主动到这个文件中查找这个属性, # 如果找到了,那么就会使用这个属性指定的模型来作为 User 对象 # AUTH_USER_MODEL...这个属性是一个字符串,规则是 “appname.Modelname” # app 下的哪个模型 # 如果设置了 AUTH_USER_MODEL,那么项目的 makemigrations 以及 migrate...命令 # 必须要在设置完这些东西后再执行 AUTH_USER_MODEL = 'User' ?
针对django 2.0 xadmin 错误集锦 1.ModuleNotFoundError: No module named 'django.core.urlresolvers' 解决方法:将from...django.core.urlresolvers import NoReverseMatch, reverse 改成 from django.urls...TypeError: __init__() missing 1 required positional argument: 'on_delete' 解决方法:将user = models.ForeignKey(AUTH_USER_MODEL..., verbose_name=_(u"user")) 改成 user = models.ForeignKey(AUTH_USER_MODEL, verbose_name...直接django2.0版本的
Other fields are optional. """ class Meta(AbstractUser.Meta): swappable = 'AUTH_USER_MODEL...关于 Django 的抽象模型类和多表继承,请查阅 Django 的官方文档 模型继承。...为了让 Django 用户认证系统使用我们自定义的用户模型,必须在 settings.py 里通过 AUTH_USER_MODEL 指定自定义用户模型所在的位置,即需要如下设置: django_auth_example...AUTH_USER_MODEL = 'users.User' 即告诉 Django,使用 users 应用下的 User 用户模型。...注意:一定要在设置好 AUTH_USER_MODEL = 'users.User' 后在第一次迁移数据库,即指定好自定义的用户模型后再执行数据库迁移命令。
修改settings.py中相应配置 django使用自己的用户系统 用过django的人应该都会知道admin,什么,真的没用过?...created_at',) filter_horizontal = () admin.site.register(User, MyUserAdmin) step-3 修改settings.py中相应配置 添加 AUTH_USER_MODEL...= 'myauth.User' install_app不要忘记加上myauth模块 grep django的源码可以看到,很多地方直接使用了配置AUTH_USER_MODEL user = models.ForeignKey...except ValueError: raise ImproperlyConfigured("AUTH_USER_MODEL must be of the form 'app_label.model_name...user_model = get_model(app_label, model_name) if user_model is None: raise ImproperlyConfigured("AUTH_USER_MODEL
首先,确保您安装的Zinnia版本与Django版本兼容。查看Zinnia的官方文档或GitHub页面,了解支持的Django版本。...然后在您的Django项目的settings.py文件中配置Zinnia:1、问题背景用户在安装了 Zinnia 后,在运行 Django 本地服务器时遇到了错误。...为了解决这个问题,有两种方法:在 Zinnia 的 settings.py 文件中,将 AUTH_USER_MODEL 设置为 main.MyUser。...下面是修改后的 Author 模型代码:from django.db import modelsfrom django.contrib.auth.models import Userclass Author...models.TextField(blank=True) website = models.URLField(blank=True)代码例子"""The code below shows how to change the AUTH_USER_MODEL
第一步: 创建工程 cmd 进入你想保存的位置:django-admin startproject MxOnline 第二步: models设计 python manage.py startapp...startapp hisinfor 建立信息模块 2.1.users 用户 自定义userProfile 系统自动生成的user表如下 id: 主键, password 密码, last_login Django...共11条信息 2.2若要扩展user表,添加需要的字段 # users/models.py from django.dbimport models from django.contrib.auth.modelsimport...', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages...', 'django.contrib.staticfiles', 'users'] (settings.py) 将'users'添加进去 2.5 重载AUTH_USER_MODEL AUTH_USER_MODEL
《django入门:环境及项目搭建》 《django入门:数据模型》 《django入门:视图及模版》 《django入门:Admin管理系统及表单》 《django入门:通用视图类重构视图》 《用django...写接口(入门篇)》 《用django写接口(优化篇)》 《用django写接口(实战篇)》 1 扩展 django 的 User Model 字段 在实际项目中,django 自带的 user model...phone_num = models.CharField(max_length=20, unique=True, blank=True) 然后我们需要在 settings.py 文件中设置 AUTH_USER_MODEL...的值 # settings.py AUTH_USER_MODEL = '[your_app_name]....Other fields are optional. """ class Meta(AbstractUser.Meta): swappable = 'AUTH_USER_MODEL
的User派生或者重写,这样要比较小心地满足Django一些耦合的地方,才能利用起Django的用户认证 和管理。...就能够使用Django来创建用户。...在user/models.py放以下代码: from django.db import models from django.contrib.auth.models import BaseUserManager..._db) return user # 在settings里面指定这个User类为AUTH_USER_MODEL class User(AbstractBaseUser, PermissionsMixin...user = models.ForeignKey(User) friend = models.IntegerField() 然后在project的settings.py里面加入: AUTH_USER_MODEL
Django已经提供了开箱即用的认证系统,但是可能并不满足我们的个性化需求。自定义认证系统需要知道哪些地方可以扩展,哪些地方可以替换。本文就来介绍自定义Django认证系统的相关技术细节。...MyUser(AbstractUser): pass 第二步,settings.py中配置AUTH_USER_MODEL,指定新的用户模型: AUTH_USER_MODEL = 'myapp.MyUser...', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages',...# Simplest possible answer: All admins are staff return self.is_admin 不要忘了在settings.py中修改AUTH_USER_MODEL...哦: AUTH_USER_MODEL = 'customauth.MyUser' 东方说 纯技术文太单调,不如来点小吐槽。
需要改动三个地方: 1.models.py 创建模型User,并继承原模型类AbstraUser(在此处我增加了一个新的字段手机号) from django.db import models #...from django.contrib.auth.models import AbstractUser class User(AbstractUser): tel = models.CharField...settings.py 新增设置如下,‘first_app’为你的app的名字,‘User’为models.py中第1步新创建的类名(也就是新的表名,此处仍使用原来自带的表名) # 继承原User表设置 AUTH_USER_MODEL...已经被替换,此处不改会报错的: error:Manager isn't available; 'auth.User' has been swapped for 'first_app.User' in Django...# from django.contrib.auth.models import User from .models import User 结束,如有不懂或其他见解欢迎添加我的微信交流:zhx799758765
1.首先,创建表,使用Django自带的校验表 1.在models中,from django.contrib.auth.models import AbstractUser image.png 2.在settings...中,添加 AUTH_USER_MODEL = "app名.UserInfo" image.png 3.在视图中,from app01.models import UserInfo as User...request.user.set_password('admin1234') request.user.save() 5.设置settings image.png 3.成功登录后,记住登录登录状态,并为其他url做登录校验 1.登录校验 from django.contrib...import auth # 用于登录校验用户名和密码 image.png 2.登录成功之后 from django.contrib.auth.decorators import login_required
使用自带的登陆认证模块,需要提前在views里导入相应包: from django.contrib.auth.models import User 1 创建用户时,可在视图函数里写入下列语句: user...另外,数据是存储在django ORM自动生成的auth_user表中了,并不是用户自定义的表。...如下: from django.contrib.auth.models import AbstractUser class UserInfo(AbstractUser): .......写完这些之后,还需要在setting.py文件里加一条配置: AUTH_USER_MODEL = 'appname.UserInfo' appname是app名称 2修改密码: user = User.objects.get
', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', '...', 'django_filters', 'corsheaders', 'drf_yasg', 'users.apps.UsersConfig', ] 用户模块 Django...有自带了一个用户管理模块,所以不再从头编写,而是从它的基础上进行二次开发 用户表 Django自带用户管理模块的models.py文件为: from django.contrib.auth.models...站点显示名 verbose_name_plural = 'users' # 复数显示 指定本项目用户模型类 在backend/LightSeeking/settings.py中指定AUTH_USER_MODEL...AUTH_USER_MODEL = 'users.User' 数据库迁移 python manage.py makemigrations python manage.py migrate (venv
python3.6, django 2.2.6 AUTHENTICATION_BACKENDS 里添加自定义认证 CustomBackend(邮箱、手机号等), 用 python manage.py createsuperuser...import get_user_model from django.contrib.auth.backends import ModelBackend from django.db.models import...Q from django.contrib.auth.hashers import check_password from apps.users.models import UserProfile...return user except User.DoesNotExist: return None # settings.py AUTH_USER_MODEL...(InteractiveConsole) >>> from django.contrib.auth import get_user_model >>> User = get_user_model() >
# 前提 继承 django 自带的用户类(AbstractUser) # 环境 1. python: 3.6.x 2. django==1.11.22 # apps/users/models.py...from django.db import models from django.contrib.auth.models import AbstractUser # Create your models...upper(), self.last_name, self.first_name) # apps/users/views.py(不局限于邮箱,也可以改成 手机号码等等,但是要注意字符类型) from django.contrib.auth.backends...import ModelBackend from django.db.models import Q from .models import UserProfile # Create your views...authenticate(self, request, username=None, password=None, **kwargs) # settings.py ALLOWED_HOSTS = ["*"] AUTH_USER_MODEL
python3.6, django 2.2.6 AUTHENTICATION_BACKENDS 里添加自定义认证 CustomBackend(邮箱、手机号等), 用 python manage.py createsuperuser...import get_user_model from django.contrib.auth.backends import ModelBackend from django.db.models import...Q from django.contrib.auth.hashers import check_password from apps.users.models import UserProfile...return user except User.DoesNotExist: return None Copy # settings.py AUTH_USER_MODEL...(InteractiveConsole) >>> from django.contrib.auth import get_user_model >>> User = get_user_model() >
Django REST框架构建Web API。...django项目需要第三方登录,怎么解!!! 可以修改用户表,多添加字段?...现在大部分web项目基本都会有第三方授权登录,那 django 实现这一需求,应该有很多包可以用,比如 social-auth-app-django,在使用这样的工具时,用户模型要不要做相应的改动?...在模型类中必须定义一个用户名字段,并指定属性为 unique,并向 django 说明这个字段是用户名字段。...() 必须定义 如果没有加上,在执行数据库迁移命令会报错: AttributeError: type object 'User' has no attribute 'USERNAME_FIELD' AUTH_USER_MODEL