热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Django基础(16)Django中通过request.user获取user信息

文章目录Django中通过request.user获取user信息参考Django中通过request.user获取user信息自定义账号模型类#-*-coding:utf-8

文章目录

  • Django中通过request.user获取user信息
  • 参考


Django中通过request.user获取user信息

自定义账号模型类

# -*- coding: utf-8 -*-
from django.db import models
from django.utils import timezone
from django.contrib.auth.hashers import make_password
from django.contrib.auth.models import UserManager,AbstractBaseUser
from system.role.models import Roleclass AccountManager(UserManager):passclass Account(AbstractBaseUser):id = models.AutoField(primary_key=True)username = models.CharField(max_length=150,unique=True)role = models.ForeignKey(Role, on_delete=models.CASCADE)contact = models.CharField(max_length=50)email = models.CharField(max_length=100)tel = models.CharField(max_length=20,blank=True,null=True)is_active = models.BooleanField(default=False)is_superuser = models.BooleanField(default=False)is_staff = models.BooleanField(default=True)first_name = models.CharField(max_length=30)last_name = models.CharField(max_length=100)date_joined = models.DateTimeField()password_mtime = models.DateTimeField()last_login = models.DateTimeField()is_first_time_login = models.BooleanField(default=True)objects = AccountManager()USERNAME_FIELD = 'username'REQUIRED_FIELDS = ['email']def set_password(self, raw_password):self.password = make_password(raw_password)self.password_mtime = timezone.now()class Meta:db_table = 't_account'ordering = ('-id',)def __str__(self):return self.username

如下,我们就可以如下在view中,用 acctount对象.访问具体的属性:

def create(self, request, *args, **kwargs):acct=self.request.userlogger.info('acct.role.type:%s' % acct.role.type)logger.info('acct.is_superuser:%s' % acct.is_superuser)logger.info('acct:%s' % acct)logger.info('acct.username:%s' % acct.username)

request.user是一个对象,用户没有登陆的时候使用request.user.username会返回一个AnonymousUser,这是一个匿名用户,可是我在数据库中并没有这个用户。

总结:request.user 中的属性来自我们 自定义的账号模型中。


参考

django中request.user的由来
参考URL: https://zhuanlan.zhihu.com/p/415424659
request.user哪里来的?
参考URL: https://www.cnblogs.com/wuchenggong/p/9675017.html


推荐阅读
  • Request对象和Response对象request:(请求)当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpRequest对象。Djang ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 本文讨论了将HashRouter改为Router后,页面全部变为空白页且没有报错的问题。作者提到了在实际部署中需要在服务端进行配置以避免刷新404的问题,并分享了route/index.js中hash模式的配置。文章还提到了在vueJs项目中遇到过类似的问题。 ... [详细]
  • 一:跨域问题1、同源策略(浏览器的安全策略)    只允许当前页面朝当前域下发请求,如果向其他域发请求,请求可以正常发送,数据也可以拿回,但是被浏览器拦截了  2、c ... [详细]
  • 十六.增加一个项目协作留言板功能(二)----- 建立一个任务管理的列表页面
    我们设计一个页面来展示正在处理的任务,该表格可以参照之前基础信息的增删改查。用户通过这个页面对任务进行相应操作。1.在views. ... [详细]
  • DRF类视图让你的代码DRY起来
    刚开始写views.py模块的代码,一般都是用def定义的函数视图,不过DRF更推荐使用class定义的类视图,这能让我们的代码更符合DRY(Don'tRepeatYour ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • python限制递归次数(python最大公约数递归)
    本文目录一览:1、python为什么要进行递归限制 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了VoLTE端到端业务详解|VoLTE用户注册流程相关的知识,希望对你有一定的参考价值。书籍来源:艾怀丽 ... [详细]
author-avatar
年轻人创事业的美丽家园
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有