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实现自动登录人人网并访问最近来访者实例
Sep 26 Python
Python是编译运行的验证方法
Jan 30 Python
wxpython实现图书管理系统
Mar 12 Python
python矩阵转换为一维数组的实例
Jun 05 Python
Django开发的简易留言板案例详解
Dec 04 Python
python实现多张图片拼接成大图
Jan 15 Python
python字典嵌套字典的情况下找到某个key的value详解
Jul 10 Python
python多线程同步之文件读写控制
Feb 25 Python
Python 模拟动态产生字母验证码图片功能
Dec 24 Python
pytorch之ImageFolder使用详解
Jan 06 Python
python3.7+selenium模拟淘宝登录功能的实现
May 26 Python
Python如何实现FTP功能
May 28 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
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
PHP学习之数组值的操作
2011/04/17 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
php 随机排序广告的实现代码
2011/05/09 PHP
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
php中动态调用函数的方法
2015/03/16 PHP
php获取错误信息的方法
2015/07/17 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
PHP实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
Python 命令行非阻塞输入的小例子
2013/09/27 Python
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
Python多进程写入同一文件的方法
2019/01/14 Python
django的autoreload机制实现
2020/06/03 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
C/C++有关内存的思考题
2015/12/04 面试题
MySQL面试题目集锦
2016/04/14 面试题
Delphi工程师笔试题
2013/09/21 面试题
篮球友谊赛通讯稿
2014/10/10 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
分享几个简单MySQL优化小妙招
2022/03/31 MySQL