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中实现参数类型检查的简单方法
Apr 21 Python
用Python编写生成树状结构的文件目录的脚本的教程
May 04 Python
python中map()与zip()操作方法
Feb 27 Python
python多线程之事件Event的使用详解
Apr 27 Python
nohup后台启动Python脚本,log不刷新的解决方法
Jan 14 Python
Python3中函数参数传递方式实例详解
May 05 Python
Python 通过截图匹配原图中的位置(opencv)实例
Aug 27 Python
解决pycharm上的jupyter notebook端口被占用问题
Dec 17 Python
Pytorch evaluation每次运行结果不同的解决
Jan 02 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
Apr 22 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 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 set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
js 省地市级联选择
2010/02/07 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
基于Koa2写个脚手架模拟接口服务的方法
2018/11/27 Javascript
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
python制作最美应用的爬虫
2015/10/28 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
解决python升级引起的pip执行错误的问题
2018/06/12 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
python3安装crypto出错及解决方法
2019/07/30 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
Python模块 _winreg操作注册表
2020/02/05 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
通过实例解析python subprocess模块原理及用法
2020/10/10 Python
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
幼儿园教师的考核评语
2014/04/18 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
辞职信怎么写
2015/02/27 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书
职场新人刚入职工作总结该怎么写?
2019/05/15 职场文书