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

Django(60)Django内置User模型源码分析及自定义User

前言 Django为我们提供了内置的User模型,不需要我们再额外定义用户模型,建立用户体系了。它的完整的路径是在django.contrib.auth.models.User。...User模型源码分析 class User(AbstractUser): """ Django 身份验证系统中的用户由该模型表示 需要用户名和密码。...AbstractUser类,那么我们查看下AbstractUser的源码 class AbstractUser(AbstractBaseUser, PermissionsMixin): """...不能为,且必须唯一! first_name:外国人的first_name,在30个字符以内。可以为last_name:外国人的last_name,在150个字符以内。可以为。...继承自AbstractUser   对于authenticate不满意,并且不想要修改原来User对象上的一些字段,但是想要增加一些字段,那么这时候可以直接继承自django.contrib.auth.models.AbstractUser

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

django 关于User模型

能为,且必须唯一! first_name:歪果仁的first_name,在30个字符以内。可以为last_name:歪果仁的last_name,在150个字符以内。可以为。...可以为。 password:密码。经过哈希过后的密码。 groups:分组。一个用户可以属于多个分组,一个分组可以拥有多个用户。groups这个字段是跟Group的一个多对多的关系。...示例代码如下: from django.contrib.auth.models import User from django.db import models from django.dispatch...继承自AbstractUser: 对于authenticate不满意,并且不想要修改原来User对象上的一些字段,但是想要增加一些字段,那么这时候可以直接继承自django.contrib.auth.models.AbstractUser...示例代码如下: from django.contrib.auth.models import AbstractUser class User(AbstractUser): telephone =

1.1K30

重新整理django中Auth模块

写法如下: # 引用Django自带的User表,继承使用时需要设置 AUTH_USER_MODEL = "app名.UserInfo" 在modles.py创建表单模型可以对AbstractUser进行继承因为我们可以从源码中看出来...auth自带的user表示继承AbstractUser类,所有我们可以可以同样继承然后对于他的内容进行自定义 from django.contrib.auth.models import AbstractUser...class UserInfo(AbstractUser): 新增的内容 通过源码我们可以看出自带的几个内容 AbstractUser自带的字段 源码里的内容 username :账号...first_name:姓 last_name:名 email:邮箱 is_staff : 用户是否拥有网站的管理权限. is_active: 是否允许用户登录, 设置为 False,可以在不删除用户的前提下禁止用户登录...这样设置之后可以直接request.user就为 is_authenticated为False 通过认证 is_authenticated() 用来判断当前请求是否通过了认证。

1K10

在线网站搭建(七):数据库字段的定义(上)

is_superuser 表明用户是否是超级用户(后台管理中会用到), username 表示用户名(该字段不要随便修改), last_name和first_name分别是姓和名, email 表示邮箱...models here.from django.contrib.auth.models import AbstractUser # 导入需要的类class UserProfile(AbstractUser...3 、类和top-level函数定义之间两行;类中的方法定义之间一行;函数内逻辑无关段落之间一行;其他地方尽量不要再空行。...如果子类也叫Foo,那就无能为力了。 13 、类的方法第一个参数必须是self,而静态方法第一个参数必须是cls。...比如: Yes: if isinstance(obj, int):优于No: if type(obj) is type(1): 8、 判断序列,有如下规则: Yes: if not seq:if

86720

零基础使用Django2.0.1打造在线教育网站(七):数据库字段的定义(上)

is_superuser 表明用户是否是超级用户(后台管理中会用到), username 表示用户名(该字段不要随便修改), last_name和first_name分别是姓和名, email 表示邮箱...from django.contrib.auth.models import AbstractUser # 导入需要的类 class UserProfile(AbstractUser):...**3 、**类和top-level函数定义之间两行;类中的方法定义之间一行;函数内逻辑无关段落之间一行;其他地方尽量不要再空行。...如果子类也叫Foo,那就无能为力了。 **13 、**类的方法第一个参数必须是**self**,而静态方法第一个参数必须是**cls**。...比如: Yes: if isinstance(obj, int):优于No: if type(obj) is type(1): **8、** 判断序列,有如下规则: Yes: if not seq

89560

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

能为,且必须唯一! first_name:歪果仁的first_name,在30个字符以内。可以为last_name:歪果仁的last_name,在150个字符以内。可以为。...设置Proxy模型: 作用: 给模型增加操作方法 局限: 不能增加或减少User模型的字段 好处: 破坏原来的User模型的表结构 如果你对Django提供的字段,以及验证的方法都比较满意,没有什么需要改的...不满意,并且不想要修改原来User对象上的一些字段,但是想要增加一些字段,那么这时候可以直接继承自django.contrib.auth.models.AbstractUser,其实这个类也是django.contrib.auth.models.User...示例代码如下: # models.py from django.contrib.auth.models import AbstractUser class User(AbstractUser):...我们可以通过继承内置的 AbstractUser 类,来定义一个自己的Model类。django给我们自动创建的一张user表,而如果要用auth模块,就必须要使用(或继承)这张表。

2.1K20

Django3.2边学边记—Adimn站点管理

控制显示的Django 会尝试按照这个顺序解释 list_display 的每个元素: 一个模型的字段。 一个可调用对象。 一个代表 ModelAdmin 属性的字符串。...def atitle(self):        return self.title 按以上方法显示的是不能排序的,如果让这个方法显示的也能排序,就给atitle方法的.admin_order_field...,并返回所有包含这些词的对象,区分大小写(即 icontains 查找:区分大小写的包含匹配),其中每个词必须在 search_fields 中至少有一个。...例如,如果 search_fields 设置为 ['first_name', 'last_name'],用户搜索 john lennon',Django 会做相当于这个 SQL WHERE 子句。...12 WHERE (first_name ILIKE '%john%' OR last_name ILIKE '%john%')AND (first_name ILIKE '%lennon%' OR last_name

1.3K30

Django3.2边学边记—Adimn站点管理

控制显示的Django 会尝试按照这个顺序解释 list_display 的每个元素: 一个模型的字段。 一个可调用对象。 一个代表 ModelAdmin 属性的字符串。...class Test(models.Model):    ....         """    empty_value:属性值为时 处理    description:显示名    ordering...,并返回所有包含这些词的对象,区分大小写(即 icontains 查找:区分大小写的包含匹配),其中每个词必须在 search_fields 中至少有一个。...例如,如果 search_fields 设置为 ['first_name', 'last_name'],用户搜索 john lennon',Django 会做相当于这个 SQL WHERE 子句。...12 WHERE (first_name ILIKE '%john%' OR last_name ILIKE '%john%')AND (first_name ILIKE '%lennon%' OR last_name

1.1K00

Django 用户认证(Auth)组件

用户认证(Auth)组件 Auth模块 1 Auth模块是什么 Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。...Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点。它内置了强大的用户认证系统--auth,它默认使用 auth_user 表来存储用户数据。...user.check_password(old_password): if not new_password: err_msg = '新密码不能为...我们可以通过继承内置的 AbstractUser 类,来定义一个自己的Model类。 这样既能根据项目需求灵活的设计用户表,又能使用Django强大的认证系统了。...from django.contrib.auth.models import AbstractUser class UserInfo(AbstractUser): """ 用户信息表

89730
领券