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中的yield浅析
Jun 16 Python
Python中的闭包实例详解
Aug 29 Python
Python实现ssh批量登录并执行命令
Oct 25 Python
网站渗透常用Python小脚本查询同ip网站
May 08 Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 Python
python微信跳一跳系列之棋子定位像素遍历
Feb 26 Python
Python 元类实例解析
Apr 04 Python
在Pycharm中对代码进行注释和缩进的方法详解
Jan 20 Python
pyQT5 实现窗体之间传值的示例
Jun 20 Python
Python 的字典(Dict)是如何存储的
Jul 05 Python
django使用graphql的实例
Sep 02 Python
Python绘制词云图之可视化神器pyecharts的方法
Feb 23 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
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
php Http_Template_IT类库进行模板替换
2009/03/19 PHP
基础的WordPress插件制作教程
2015/11/24 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
thinkphp诸多限制条件下如何getshell详解
2020/12/09 PHP
将list转换为json失败的原因
2013/12/17 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
Vue表单实例代码
2016/09/05 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
JavaScript实现简单生成随机颜色的方法
2017/09/21 Javascript
node内置调试方法总结
2018/02/22 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
python 把数据 json格式输出的实例代码
2016/10/31 Python
Python3 socket同步通信简单示例
2017/06/07 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
python实现最小二乘法线性拟合
2019/07/19 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
Pyorch之numpy与torch之间相互转换方式
2019/12/31 Python
python 爬取疫情数据的源码
2020/02/09 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
应聘收银员个人的求职信
2013/11/30 职场文书
世博会口号
2014/06/20 职场文书
代理人委托书
2014/09/16 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
读书笔记格式
2015/07/02 职场文书
2016企业先进集体事迹材料
2016/02/25 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python
Golang Web 框架Iris安装部署
2022/08/14 Python