首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django User 模块之 AbstractUser 扩展详解

… 你可以看出,User 模块继承了 AbstractUser 抽象基类,而仅仅只是继承了,并没有对 AbstractUser 进行任何扩展。...注意:为了让 Django 能够识别使用自定义的用户模型,必须要在 settings.py 中设置自定义模块位置,如在 settings.py 上添加 AUTH_USER_MODEL = ‘blog.user...所以,如果之前是使用例如 AUTH_USER_MODEL = auth.user 的用户模型,并重新将其自定义为 AUTH_USER_MODEL = blog.user 请删掉 migrations 目录下的所有文件...内置用户类AbstractUser 我们在之前讲过了model模型的作用和父类的作用,这次介绍的内置用户类AbstractUser就是Django内置的一个关于用户操作的类,它极大地方便了我们对model...模型中对User用户类的设计。

1.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

自定义 DjangoUser Model,扩展 AbstractUser类注意事项

中设置AUTH_USER_MODEL: # settings.py # 格式为 "....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 引用的模型在所属...has_module_perms(app_label): user是否拥有app中访问models的权限 你同样也需要注册你自定义的用户模型到admin。

5.9K20

【愚公系列】2022年01月 Django商城项目12-登录界面-登录和退出功能实现

文章目录 一、登录功能实现 1.使用django自带的用户登录模型配置 2.UsernameMobileModelBackend校验函数源码 3.登录的业务逻辑实现 4.用户名展示 5.实际效果 二、...退出功能实现 1.退出的业务逻辑实现 总结 一、登录功能实现 1.使用django自带的用户登录模型配置 # 允许自定义用户模型AUTH_USER_MODEL = 'users.User' #...修改默认的认证后端 AUTHENTICATION_BACKENDS = [ # 'django.contrib.auth.backends.ModelBackend' 'app.users.utils.UsernameMobileModelBackend...校验函数源码 import re from django.contrib.auth.backends import ModelBackend from app.users.models import...el: '#app', // 修改Vue变量的读取语法,避免和django模板语法冲突 delimiters: ['[[', ']]'], data: { host

41510

重新整理django中Auth模块

0907自我总结 重新整理django中Auth模块 from django.contrib import auth 一.设置 默认Auth表单 auth默认是使用自带的user表单 自定义Auth表单...写法如下: # 引用Django自带的User表,继承使用时需要设置 AUTH_USER_MODEL = "app名.UserInfo" 在modles.py创建表单模型可以对AbstractUser进行继承因为我们可以从源码中看出来...该用户即使没有登录,使用该函数也不会报错。...user就为真没有就没否 四.登入装饰器 login_requierd() auth 给我们提供的一个装饰器工具,用来快捷的给某个视图添加登录校验。...若用户没有登录,则会跳转到django默认的 登录URL '/accounts/login/ ' 并传递当前访问url的绝对路径 (登陆成功后,会重定向到该路径)。

1K10

Django实战-信息资讯-重构 USER 模型

一、指定自定义的用户模型Django 自定义的 User model 满足一些最低要求: 模型必须有一个唯一的字段可被用于识别目的。可以是一个用户名、电子邮件或任何其它独特属性。...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' ?

90620

15.Django基础十一之认证系统

设置Proxy模型: 作用: 给模型增加操作方法 局限: 不能增加或减少User模型的字段 好处: 不破坏原来的User模型的表结构 如果你对Django提供的字段,以及验证的方法都比较满意,没有什么需要改的...# settings.py AUTH_USER_MODEL = 'youappname.User' 如何使用这个自定义的模型:比如以后我们有一个Article模型,需要通过外键引用这个User模型...若用户没有登录,则会跳转到django默认的 登录URL '/accounts/login/ ' (这个值可以在settings文件中通过LOGIN_URL进行修改)。...若用户没有登录,则会跳转到django默认的 登录URL '/accounts/login/ ' 并传递当前访问url的绝对路径 (登陆成功后,会重定向到该路径)。     ...写法如下: # 引用Django自带的User表,继承使用时需要设置,这样django就知道从我们的app名的应用下的models文件中去查找UserInfo这张表了 AUTH_USER_MODEL =

2.1K20

Django认证系统并不鸡肋反而很重要

安装 Django默认已安装,可以在settings.py中的INSTALLED_APPS看到: django.contrib.auth:认证系统内核,以及默认models等。...models.User User模型Django认证系统的核心,它的主要属性包括: id username email password is_active is_superuser last_login...比如有个app叫做foo,它有个model叫做Bar,可以使用has_perm()函数来检查权限: add:user.has_perm('foo.add_bar') change:user.has_perm...它的处理是这样的: 如果用户没有登录,就重定向到settings.LOGIN_URL(默认值/accounts/login/),同时把当前的绝对路径添加到查询字符串中,如:/accounts/login...如果修改了密码,数据库中的密码改变了,而session中的密码没有更新,那么密码就会匹配不上,导致session失效。

1.1K10

【云+社区年度征文】Django认证系统并不鸡肋反而很重要

安装 Django默认已安装,可以在settings.py中的INSTALLED_APPS看到: django.contrib.auth:认证系统内核,以及默认models等。...models.User User模型Django认证系统的核心,它的主要属性包括: id username email password is_active is_superuser last_login...比如有个app叫做foo,它有个model叫做Bar,可以使用has_perm()函数来检查权限: add:user.has_perm('foo.add_bar') change:user.has_perm...它的处理是这样的: 如果用户没有登录,就重定向到settings.LOGIN_URL(默认值/accounts/login/),同时把当前的绝对路径添加到查询字符串中,如:/accounts/login...如果修改了密码,数据库中的密码改变了,而session中的密码没有更新,那么密码就会匹配不上,导致session失效。

1.6K70

py3.6+xadmin的自学网站搭建

狸猫换太子 算了还是叫太子换狸猫吧,admin文档太少用起来还不如自己写的后台管理,用xadmin更换django自带的admin,安装xadmin的过程与写一个app分支的过程一致。...所以我们需要重写user模型。...第一步,修改settings.py配置文件,覆盖默认的user模型AUTH_USER_MODEL = "users.UserInfo" 重写model 衍生的model是继承了AbstractUser...的,所以在写的过程中不要写与父类重复的字段(尤其是登陆字段)如果写重复了会导致在哪登陆都无法登陆的情况。...关于登陆,django自己有一个后台的登陆系统,并且xadmin的登陆是它自己做的,你没有进行配置,我们登陆可以使用这个模块: login视图 避免auth的login方法与我们定义的视图函数名称重复

1.1K100

django-Auth模块(详细介绍)

该用户即使没有登录,使用该函数也不会报错。...若用户没有登录,则会跳转到django默认的 登录URL '/accounts/login/ ' 并传递当前访问url的绝对路径 (登陆成功后,会重定向到该路径)。...用法: from django.contrib.auth.models import User user = User.objects.create_user(username='用户名',password...聪明的你可能会想到新建另外一张表然后通过一对一和内置的auth_user表关联,这样虽然能满足要求但是有没有更好的实现方式呢? 答案是当然有了。...写法如下: # 引用Django自带的User表,继承使用时需要设置 AUTH_USER_MODEL = "app名.UserInfo" 再次注意: 一旦我们指定了新的认证系统所使用的表,我们就需要重新在数据库中创建该表

1.2K20
领券