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实现批量读取word中表格信息的方法
Jul 30 Python
Python实现简单拆分PDF文件的方法
Jul 30 Python
Python pygorithm模块用法示例【常见算法测试】
Aug 16 Python
对python中的 os.mkdir和os.mkdirs详解
Oct 16 Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
python实现单链表的方法示例
Sep 03 Python
django框架F&Q 聚合与分组操作示例
Dec 12 Python
python基于property()函数定义属性
Jan 22 Python
Python数据结构dict常用操作代码实例
Mar 12 Python
Python2 与Python3的版本区别实例分析
Mar 30 Python
pytorch常用数据类型所占字节数对照表一览
May 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过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
php过滤XSS攻击的函数
2013/11/12 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
python基于multiprocessing的多进程创建方法
2015/06/04 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
python实现两个文件夹的同步
2019/08/29 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
运行时异常与一般异常有何异同?
2014/01/05 面试题
优秀毕业自我鉴定
2014/02/15 职场文书
会计员岗位职责
2014/03/15 职场文书
保护环境建议书300字
2014/05/13 职场文书
大学新生入学教育方案
2014/05/16 职场文书
经典禁毒标语
2014/06/16 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
写给老师的保证书
2015/05/09 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
MySQL慢查询的坑
2021/04/28 MySQL
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL
linux目录管理方法介绍
2022/06/01 Servers