Django扩展内置User类

内置User类

使用内置User可以方便实现登录验证,利用Admin管理界面还可以方便添加、删除、修改用户。

一个内置的User类定义了以下字段:

username: 用户名

password: 密码

first_name: 姓名first

last_name: 姓名last

email: 邮箱

groups: Group类多对多的关系对象管理器

user_permissions: Permission类多对多的关系对象管理器

is_staff: 是否工作人员

is_active: 是否激活

is_superuser: 是否管理员

last_login: 最近登录时间

date_joined: 注册时间

扩展内置User类

在某些场合,用户需要添加自定义的字段(比如:电话号码),此时就需要扩展User类:

1. 建立一个user应用

2. 在user应用model.py文件中新建一个UserInfo的新类,继承于AbstractUser类:

from django.db import models
from django.contrib.auth.models import AbstractUser

# 添加电话字段
class UserInfo(AbstractUser):
    phone = models.CharField(null=True, max_length=20, verbose_name=‘电话‘, default=‘‘)

    class Meta:
        pass

3. 修改Settings.py

INSTALLED_APPS = [
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘guardian‘,
    ‘homepage‘,
    ‘rest_framework‘,
    ‘rest_framework.authtoken‘,  # TokenAuthentication
    ‘user‘,  # 添加user应用
    ‘stock‘,
    ‘future‘,
    ‘api‘,
    ‘perm‘
]

# 设置AUTH_USER_MODEL
AUTH_USER_MODEL = ‘user.UserInfo‘

原文地址:https://www.cnblogs.com/bryant24/p/11445354.html

时间: 2024-08-01 17:46:37

Django扩展内置User类的相关文章

django的内置信号

pre_init 在model执行构造方法之前自动触发post_init django的model在执行构造方法之后,自动触发pre_save django的对象保存之前,自动触发post_save django的对象保存之后,自动触发pre_delete 这个是django的对象删除之前,自动触发post_delete django的的对象删除之后,自动触发m2m_changed 使用m2m的第三张表(add,remove,clear)前后,自动触发class_prepared 程序启动时,对

2.4.1、Django使用内置的Admin管理用户

再打开session之后,接下来: 首先在settings.py中,打开auth,contenttypes,sessions,admin应用,如下代码中红色部分: INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', #'django.contrib.sites', #'django.contrib.messages', #'django.contri

扩展内置对象

通过原型对象,对原来的内置对象进行扩展自定义的方法.比如给数组增加自定义求和的功能 Array原型原本没有sum求和方法,通过以下形式为Array原型添加新的方法 Array.prototype.sum = function() { var sum = 0 for (var i = 0; i < this.length; i++) { sum += this[i] } return sum } var arr = new Array(1, 2, 3) console.log(arr.sum())

django+mongodb 内置用户控制

0x01 项目:django2.1 数据库:mongodb 这是一个很蛋疼的组合 mongodb并非官方支持使用的数据库,这意味着要使用user group permissions等进行用户和权限控制,需要找第三方包,必要时还要重写模型. 在此:能用mysql等其他的还是先用吧(https://www.zhihu.com/question/19818326) django+mongo的严重问题是:文档严重缺失!找了一下午的"user添加入group中",没有,只能自己写了. Mongo

Django Form 内置字段

常用字段: Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 help_text='', 帮助信息(在标签旁边显示) error_messages=None, 错误信息 {'required': '不能为空', 'invalid': '格式错误'} show_hidden_initial=False, 是否在当前插件后面再加一个隐藏的且具有默认值的插件(可用

Python的内置list类

class NamedList(list): def __init__(self, a_name): list.__init__([]) self.name = a_name if __name__ == '__main__': johnny = NamedList('John Paul Jones') print(johnny) print(type(johnny)) print(dir(johnny)) johnny.append('Bass Player') johnny.extend([

JS内置支持类date

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>JS显示与隐藏</title></head><body><script type="text/javascript"> var nowTime=new Date(); document.write(nowT

django 模版内置的过滤器

一.add 将传进来的参数添加到原来的值上面.这个过滤器会尝试将“值”和“参数”转换成整形然后进行相加.如果转换成整形过程中失败了,那么将会将“值”和“参数”进行拼接.如果是字符串,那么会拼接成字符串,如果是列表,那么会拼接成一个列表.实例代码如下: {{ value|add:"2"}} 如果value是等于4,那么结果将是6.如果value是等于一个普通的字符串,如‘abc’,那么结果将是abc2. 二.cut 移除值中所有指定的字符串.类似于python中的replace(args

扩展PHP内置的异常处理类

在try代码块中,需要使用throw语句抛出一个异常对象,才能跳到转到catch代码块中执行,并在catch代码块中捕获并使用这个异常类的对象.虽然在PHP中提供的内置异常处理类Exception,已经具有非常不错的特性,但在某些情况下,可能还要扩展这个类来得到更多的功能.所以用户可以用自定义的异常处理类来扩展PHP内置的异常处理类.以下代码说明了在内置的异常处理类中,哪些属性和方法在子类中是可访问和可继承的: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17