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

Django 继承AbstractUser扩展用户模型

User Model,用于记录用户的用户名,密码,邮箱,姓,名等个人信息,这些信息可能无法满足实际需求,这种情况下,需要拓展用户模型,如果项目还没有使用 Django 内置 User 模型,可以采用继承...AbstractUser 的拓展方式进行拓展(如果已经使用了Django的内置模型,Django会为其生成相关数据库迁移文件和数据库表,采用继承方式拓展会比较麻烦。)...用户认证系统使用我们自定义的用户模型,必须在项目settings.py 里通过 AUTH_USER_MODEL 指定自定义用户模型,如下带背景色部分的内容 ...略 TEMPLATE_DIRS = (...,意为使用appName应用下的自定义CustomeUserModel用户模型,本例为使用mysite应用的User模型 执行数据库迁移 进入到项目根目录,执行以下命令 python manage.py...makemigrations mysite python manage.py migrate 成功后,Django便会使用我们自定义的用户模型作为默认的用户模型了 注意:一定要在配置好 AUTH_USER_MODEL

1.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    自定义 Django的User Model,扩展 AbstractUser类注意事项

    使用settings.AUTH_USER_MODEL 自从django 1.5之后, 用户可以自定义User model了, 如果需要外键使用user model, 官方推荐的方法如下: 在settings...你应该使用django.contrib.auth.get_user_model()来引用用户模型————指定的自定义用户模型或者User from django.contrib.auth import...Django的用户模型和你只是想添加一些额外的属性信息,你只需继承 django.contrib.auth.models.AbstractUser 然后添加自定义的属性。...然而,你也需要覆写一些django.contrib.auth.models.AbstractUser 字段的定义不在你自定义用户模型中的。...7.自定义用户和权限 如果想让在自定义用户模型中包含Django的权限控制框架变得简单,Django提供了PermissionsMixin。

    6.3K20

    Django 自定义用户 VS 用户资料

    然而,如果我们需要更详细的用户资料管理,比如添加更多的字段或者自定义验证规则,Django允许我们自定义用户模型。...1、问题背景在 Django 1.5.1 中,我使用自定义用户,就像官方文档中描述的那样。我发现所有内容都存储在一个表中,即 auth_user 表。...使用旧方法,您必须连接辅助表才能获取用户的全部信息。通常,当您看到一对一的关系时,最好将它们合并到一个表中。但新的自定义用户模型还解决了另一个问题,即用户应该具有哪些属性?...否则,最好将它们存储在与用户相同的表中。方案二: 使用自定义用户模型时,您可以控制哪些字段包含在用户模型中。这为您提供了灵活性,以便根据应用程序的特定需求自定义用户模型。...中使用自定义用户模型和用户资料模型来存储用户数据了。

    10710

    拓展 User 模型

    ,用户可能还包含有昵称、头像、个性签名等等其它属性,因此仅仅使用 Django 内置的 User 模型是不够。...为了让 Django 用户认证系统使用我们自定义的用户模型,必须在 settings.py 里通过 AUTH_USER_MODEL 指定自定义用户模型所在的位置,即需要如下设置: django_auth_example...即运行如下两条命令: $ python manage.py makemigrations $ python manage.py migrate OK,现在 Django 用户系统使用的用户模型就是自定义的...使用 Profile 模式拓展用户模型 如果想为一个已使用了 Django 内置 User 模型的项目拓展用户模型,上述继承 AbstractUser 的拓展方式会变得有点麻烦。...因此对于新项目来说,优先推荐使用继承 AbstractUser 的方式来拓展用户模型。

    1.6K50

    自定义Django认证系统的技术方案

    Django已经提供了开箱即用的认证系统,但是可能并不满足我们的个性化需求。自定义认证系统需要知道哪些地方可以扩展,哪些地方可以替换。本文就来介绍自定义Django认证系统的相关技术细节。...AbstractUser和AbstractBaseUser就是对User的不同程度的抽象,AbstractUser是User的完整实现,可用于扩展User,AbstractBaseUser是高度抽象,可用于完全自定义...比如自定义表名: from django.contrib.auth.models import AbstractUser class MyUser(AbstractUser): class Meta...继承AbstractBaseUser 继承AbstractUser只能做扩展,如果我们想完全自定义用户模型,那么就需要继承AbstractBaseUser,再重写属性和方法。...参考AbstractUser的实现: REQUIRED_FIELDS = ['email'] 这表示email是必填的,在使用createsuperuser命令时,会提示必须输入。

    1.2K10

    Django使用自己的用户系统

    name巴拉巴拉,django 的用户系统可能满足不了你的需求,这时候需要用自己的用户系统了,如何能在满足需求的时候充分又利用到django的用户系统?...django使用自己的用户系统 step-1 写自己的auth模块(定义user class) step-2 admin.py 注册到django的admin后台,并且修改一些field step-3...修改settings.py中相应配置 django使用自己的用户系统 用过django的人应该都会知道admin,什么,真的没用过?...不过,需求是多变的,比如,你有一个变态的用户系统,用户可能有大中小三张头像, 除了fisrt name ,last name外还有middle name,T^T name巴拉巴拉,django 的用户系统可能满足不了你的需求...,这时候需要用自己的用户系统了,如何能在满足 需求的时候充分又利用到django的用户系统?

    63920

    第一季 | 自定义用户模型,需要注意哪些坑位

    现在大部分web项目基本都会有第三方授权登录,那 django 实现这一需求,应该有很多包可以用,比如 social-auth-app-django,在使用这样的工具时,用户模型要不要做相应的改动?...django 提供用户认证模块 AbstractUser 与 AbstractBaseUser,而 AbstractUser 继承了 AbstractBaseUser,AbstractUser 是一个完整的用户模型...再来看下第一季都有哪些可以回顾和用得上的小技能 本次创建的 django 项目,新建的用户模型继承 AbstractUser ,它是高度集成的类,里面定义的字段,不会完全显示,在迁移数据库时,就会创建。...使用 AbstractBaseUser 继承类来自定义一些字段,在 django 自带的 auth 认证的所有用法中统统不能使用,需要动手实现加密、登录判断、存储等一系列方法。...,可以使用 django.contrib.auth.get_user_model() 来引用用户模型。

    78610

    在Django中实现使用userid和密码的自定义用户认证

    在本教程中,我们将详细介绍如何在Django中实现自定义用户认证,使用包含userid字段的CustomUser模型以及标准的密码认证。本教程假设您已经对Django有基本的了解并且已经设置好了项目。...概述设置和配置定义包含userid字段的CustomUser模型。创建自定义认证后端,用于使用userid认证用户。配置Django设置以使用自定义认证后端。...中使用包含userid字段的CustomUser模型来实现自定义用户认证。...通过以下步骤,您完成了:定义包含额外字段的自定义用户模型。创建自定义认证后端以使用userid进行用户认证。配置Django设置以使用自定义认证后端。...开发登录API视图,并使用AJAX请求在前端页面中集成用户认证功能。这种设置允许您根据特定项目需求定制Django中的认证过程,增强用户登录功能的安全性和易用性。

    33320

    重新整理django中Auth模块

    0907自我总结 重新整理django中Auth模块 from django.contrib import auth 一.设置 默认Auth表单 auth默认是使用自带的user表单 自定义Auth表单...一定要在settings.py中告诉Django,我现在使用我新定义的UserInfo表来做用户认证。...写法如下: # 引用Django自带的User表,继承使用时需要设置 AUTH_USER_MODEL = "app名.UserInfo" 在modles.py创建表单模型可以对AbstractUser进行继承因为我们可以从源码中看出来...auth自带的user表示继承AbstractUser类,所有我们可以可以同样继承然后对于他的内容进行自定义 from django.contrib.auth.models import AbstractUser...当调用该函数时,当前请求的session信息会全部清除。该用户即使没有登录,使用该函数也不会报错。

    1K10

    Django项目知识点(二)

    . 5.2 注册过滤器 通过django.template.Library 它的实例的 filter 方法 filter 有两个参数: name 过滤器的名称,是个字符串,默认使用方法名作为过滤器的名称...用户注册 官方文档 django的强大之处在于开发效率高,内置了权限模块之类的很多常用功能。django内置权限系统有大的自定义功能扩展,不需要重复造轮子。...,如email user app下的model from django.contrib.auth.models import AbstractUser,UserManager as _UserManager...通过上面改写UserManager的create_superuser创建超级用户可以不提供email字段 6.2 AbstractUser AbstractUser这是django特定的抽象用户 导入方式...: from django.contrib.auth.models import AbstractUser 创建用户的model,继承了AbstractUser class User(AbstractUser

    77430

    Django 用户认证系统使用总结

    Django用户认证系统使用总结 测试环境 Win7 Django 1.11 使用Django认证系统 本文按默认配置讲解Django认证系统的用法。...如果默认的认证无法满足项目,Django提供了对认证系统的扩展与定制。 Django身份验证同时提供身份验证和授权,通常称为身份验证系统,因为这些特性有些耦合。...,可以对它的属性进行修改 >>>user.last_name='Lennon' >>>user.save() 如果已经安装了Django admin应用,可以直接创建用户 创建超级用户 使用createsuperuser...='secret',is_delete=1) 当然,除了是否删除,是否禁用等字段,其它字段一般不推荐这么做,可以在验证用户账号密码前进行其它前置条件的验证 注意:默认的,django会优先验证我们显示提供的参数...当使用RequestContext,并且开启了'django.contrib.auth.context_processors.auth'上下文处理器时(可在settings.py中配置),当前已登录用户和他们的权限都被存储为变量

    1.8K10

    使用Django实现微信公众号用户openid登录认证

    Django中用户的模型继承和扩展于AbstractUser,在用户模型中添加openid字段(models.py): class Users(AbstractUser): openid...,并使用这个模型来作为用户认证的模型,需要在setting.py文件里指定认证的模型(website是django应用的名称,非项目名称): AUTH_USER_MODEL = 'website.Users...一个常见默认的Django登录认证,使用的是authenticate,在此引用Django文档中的叙述: 认证一个给定用户名和密码,请使用authenticate() 它以关键字参数形式接收凭证,对于默认的配置它是...在Django中进行自定义认证很是方便,完成一个自定义的认证只需要三步: 1、编写一个认证后端: 一个认证后端是个实现两个方法的类: get_user(user_id)和authenticate(**...3、使用自定义的认证后端处理登录授权: 同样的使用authenticate()方法和login()方法,但是我们只传入一个参数进去,就是openid from django.contrib.auth

    2.2K10
    领券