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 相关文章推荐
Python操作MongoDB数据库PyMongo库使用方法
Apr 27 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 Python
简单了解python 生成器 列表推导式 生成器表达式
Aug 22 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
Oct 11 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
Oct 30 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
Dec 25 Python
通过实例学习Python Excel操作
Jan 06 Python
python实现的Iou与Giou代码
Jan 18 Python
解决jupyter运行pyqt代码内核重启的问题
Apr 16 Python
使用OpenCV去除面积较小的连通域
Jul 05 Python
python画条形图的具体代码
Apr 20 Python
pd.drop_duplicates删除重复行的方法实现
Jun 16 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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
php 可变函数使用小结
2018/06/12 PHP
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
基于angular实现模拟微信小程序swiper组件
2017/06/11 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
vue+layui实现select动态加载后台数据的例子
2019/09/20 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
Python判断变量是否已经定义的方法
2014/08/18 Python
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
Python实现数字的格式化输出
2020/08/01 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
浅析HTML5 Landmark
2020/09/11 HTML / CSS
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
幼儿园教师教学反思
2014/02/06 职场文书
大学运动会入场词
2014/02/22 职场文书
商务日语专业自荐信
2014/04/17 职场文书
市政管理求职信范文
2014/05/07 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
2015小学毕业班工作总结
2015/07/21 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers