Django之全局使用request.user.username的实例详解


Posted in Python onMay 14, 2020

我就废话不多说了,大家还是直接看代码吧!

def pro_mgr():
  """
  获取当前登陆用户的项目
  :return:
  """
  if DEVELOP_USER_NAME == 'admin':
    return Project.objects.all()
  return Project.objects.filter(prj_mgr=DEVELOP_USER_NAME)


class DeployApplyForm(ModelForm):
  # project = forms.ModelChoiceField(queryset=pro_mgr())
  bgn_time = forms.DateTimeField(initial=datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S"), label=u'开始',
                  input_formats=['%Y-%m-%dT%H:%M:%S'], widget=forms.DateTimeInput(
      attrs={'type': 'datetime-local', 'emptyTips': u'请选择时间', 'step': '1'}))
  end_time = forms.DateTimeField(initial=datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S"), label=u'结束',
                  input_formats=['%Y-%m-%dT%H:%M:%S'], widget=forms.DateTimeInput(
      attrs={'type': 'datetime-local', 'emptyTips': u'请选择时间', 'step': '1'}))

  class Meta:
    model = DeployApply
    fields = '__all__'


  def __init__(self, *args, **kwargs):
    prj_mgr = kwargs.pop('prj_mgr', '')
    super(DeployApplyForm, self).__init__(*args, **kwargs)
    if prj_mgr == 'admin':
      self.fields['project'] = forms.ModelChoiceField(queryset=Project.objects.all())
    else:
      self.fields['project'] = forms.ModelChoiceField(queryset=Project.objects.filter(prj_mgr=prj_mgr))
//views.py
deployApplyForm = DeployApplyForm(initial=wfContent[0], prefix='deployApply',prj_mgr=request.user.username)
//settings.py
# DEVELOP模式下登陆用户
DEVELOP_USER_NAME = 'admin'

补充知识:Django 中 request.user 调用用户名时出现 AnonymousUser(匿名对象)的错误

说明

已经添加了额外的属性,现在想通过request.user的方式获取,打印request.user是一个AnonymousUser对象,无法获取 user 值!

原因

1. 没有登录账号或者无法登录成功。

2. 登录成功但是在登录代码中没有注册 cookie,导致无法验证身份!

3. 其它原因。

解决方法

1. 登录账号,你也可以试着使用 admin 账户登录后,看看能否解决。

2. 参考以下代码,在 login 中注册cookis(大多数是这种情况):

auth_obj = auth.authenticate(request, username=username, password=password)
if auth_obj:
  # 需要auth验证cookie
  auth.login(request, auth_obj)
  ....

3. 换另一种方式重写 login 。

以上这篇Django之全局使用request.user.username的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pycharm下打开、执行并调试scrapy爬虫程序的方法
Nov 29 Python
python 判断网络连通的实现方法
Apr 22 Python
对python3标准库httpclient的使用详解
Dec 18 Python
解决python中画图时x,y轴名称出现中文乱码的问题
Jan 29 Python
Python 学习教程之networkx
Apr 15 Python
Python 实现还原已撤回的微信消息
Jun 18 Python
Python批量查询关键词微信指数实例方法
Jun 27 Python
如何通过Django使用本地css/js文件
Jan 20 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
Jul 01 Python
快速创建python 虚拟环境
Nov 28 Python
python图片灰度化处理的几种方法
Jun 23 Python
Python 数据可视化工具 Pyecharts 安装及应用
Apr 20 Python
Django使用Profile扩展User模块方式
May 14 #Python
python网络编程之五子棋游戏
May 14 #Python
Jupyter notebook如何修改平台字体
May 13 #Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 #Python
Django 允许局域网中的机器访问你的主机操作
May 13 #Python
Django 用户登陆访问限制实例 @login_required
May 13 #Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 #Python
You might like
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
安健A254立体声随身听的分析与打磨
2021/03/02 无线电
php array的学习笔记
2012/05/16 PHP
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
JavaScript 大数据相加的问题
2011/08/03 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
Angularjs 滚动加载更多数据
2016/03/17 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
2017/03/14 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
解析Python中的二进制位运算符
2015/05/13 Python
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
Python地图绘制实操详解
2019/03/04 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
如何获取Python简单for循环索引
2019/11/21 Python
通过Python实现一个简单的html页面
2020/05/16 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
次世代生活态度:Hypebeast
2018/07/05 全球购物
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
横店影视城导游词
2015/02/06 职场文书
技能培训通讯稿
2015/07/18 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python