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写的Socks5协议代理服务器
Aug 06 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
Jun 14 Python
python实现合并两个排序的链表
Mar 03 Python
python实现关闭第三方窗口的方法
Jun 28 Python
python list转置和前后反转的例子
Aug 26 Python
使用OpCode绕过Python沙箱的方法详解
Sep 03 Python
Python 如何实现数据库表结构同步
Sep 29 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 Python
pandas map(),apply(),applymap()区别解析
Feb 24 Python
python实现ROA算子边缘检测算法
Apr 05 Python
Python入门之基础语法详解
May 11 Python
基于Python实现射击小游戏的制作
Apr 06 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
PHP的PSR规范中文版
2013/09/28 PHP
php简单获取文件扩展名的方法
2015/03/24 PHP
document.getElementById方法在Firefox与IE中的区别
2010/05/18 Javascript
在ASP.NET中使用JavaScript脚本的方法
2013/11/12 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
jquery点击缩略图切换视频播放特效代码分享
2015/09/15 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
党建示范点实施方案
2014/03/12 职场文书
创意广告词
2014/03/17 职场文书
高考寄语大全
2014/04/08 职场文书
法律专业自荐信
2014/06/03 职场文书
航海技术专业毕业生推荐信
2014/07/09 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
百年孤独读书笔记
2015/06/29 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
goland设置颜色和字体的操作
2021/05/05 Golang
「月刊Action」2022年5月号封面公开
2022/03/21 日漫