Django 1.8 admin 产生'WSGIRequest' object has no attribute 'user'的错误

配置admin时,产生‘WSGIRequest‘ object has no attribute ‘user‘的错误

google了下说是MIDDLEWARE配置的有问题顺序应该保持参见(http://stackoverflow.com/questions/26576192/wsgirequest-object-has-no-attribute-user):

django.contrib.auth.middleware.AuthenticationMiddleware‘,django.contrib.auth.middleware.SessionAuthenticationMiddleware‘,

但是这样设置之后依然没有解决。 
我的MIDDLEWARE的配置是:

MIDDLEWARE = [
    ‘django.middleware.security.SecurityMiddleware‘,django.middleware.common.CommonMiddleware‘,django.contrib.sessions.middleware.SessionMiddleware‘,django.middleware.csrf.CsrfViewMiddleware‘,django.contrib.auth.middleware.SessionAuthenticationMiddleware‘,django.contrib.auth.middleware.AuthenticationMiddleware‘,django.contrib.messages.middleware.MessageMiddleware‘,django.middleware.clickjacking.XFrameOptionsMiddleware‘,
]

实际上这是Django版本的问题1.9之前中间件的key为MIDDLEWARE_CLASSES, 1.9之后为MIDDLEWARE。所以在开发环境和其他环境的版本不一致时要特别小心会有坑。 
改配置为:

MIDDLEWARE_CLASSES = [
    ‘django.middleware.security.SecurityMiddleware‘,django.middleware.common.CommonMiddleware‘,django.contrib.sessions.middleware.SessionMiddleware‘,django.middleware.csrf.CsrfViewMiddleware‘,django.contrib.auth.middleware.SessionAuthenticationMiddleware‘,django.contrib.auth.middleware.AuthenticationMiddleware‘,django.contrib.messages.middleware.MessageMiddleware‘,django.middleware.clickjacking.XFrameOptionsMiddleware‘,
]

问题解决。 
参考 http://www.ziqiangxuetang.com/django/django-middleware.html

 

Django 1.8 admin 产生'WSGIRequest' object has no attribute 'user'的错误

时间: 2024-10-21 03:12:04

Django 1.8 admin 产生'WSGIRequest' object has no attribute 'user'的错误的相关文章

Django admin 中抛出 'WSGIRequest' object has no attribute 'user'的错误

这是Django版本的问题,1.9之前,中间件的key为MIDDLEWARE_CLASSES, 1.9之后,为MIDDLEWARE.所以在开发环境和其他环境的版本不一致时,要特别小心,会有坑. 将settings里的MIDDLEWARE_CLASSES默认配置顺序改成如下 MIDDLEWARE_CLASSES = [ 'django.middleware.security.SecurityMiddleware', 'django.middleware.common.CommonMiddlewar

centos 安装python3与Python2并存,并解决"smtplib" object has no attribute 'SMTP_SSL'的错误

1.需要先安装python3依赖的包yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make 2.安装python-3.6.82.1 获取python-3.6.8 wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz2.2 解压&进入目录 tar -xvJf  P

对于AttributeError: ‘module’ object has no attribute ‘AF_INET’ 的错误原因

在python使用import socket后使用socket.AF_INET常量的时候发生在模块中找不到这个常量,很奇怪,在网上查了一下,在python import模块的时候会根据文件的名字进行导入,我的python脚本文件名字恰巧是socket.py,这才导致了导入的socket是错误的,尽量不要让自己的python脚本和模块同名,并且要注意同文件夹下的其他文件名和模块名是否冲突

针对AttributeError: ‘module’ object has no attribute’xxx’的错误归类

目前遇见的有三种类型: 拼写错误,模块一定要拼写错误,这个也是最容易犯的,发现找不到模块的时候,最好先检查一遍自己引入的模块拼写尤其是那些名字非常长的比如HTTPPasswordMgrWithDefaultRealm,这种里有部分字母要大写的一定要注意 就是在python3中,引入主模块不会将相应的子模块引入,比如引入urllib模块,但是使用的时候用的是urllib.request模块,那么在开头引入的时候就应该写的是import  urllib.request 定义python文件名的时候,

django中的admin组件之自定义组件

内容回顾: 一 admin的使用 app01的admin.py文件:                  class BookConfig(admin.ModelAdmin):               list_display=[]               list_display_links=[]               list_filter=[]               search_fields=[]                              def pat

Django内置 Admin (二)

Django Admin Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: /HelloWorld/HelloWorld/settings.py 文件代码: INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes

Django学习(九)---Templates过滤器及Django shell和Admin增强

一.Templates过滤器 过滤器属于django模板语言 修改模板中的变量,从而显示不同内容 {{ value | filter }} 举例:{{ list_nums | length}}    表示list的长度 {{ value | filter | filter | filter }} 可叠加 django模板如果出现了不存在的变量,不会报错,只会给出空值 因此修改add_article.html   去掉{{% if *** %}} 添加过滤器default <!DOCTYPE ht

Django 1.9 admin 使用suit 小记

最近项目做到了后台管理的部分.Django虽然提供了后台管理,但是界面不咋好看.所以我使用了suit.官网http://djangosuit.com/ 步骤: 1,安装suit 项目settings.py设置(请放在第一个,不然应用不了) Django > 1.8中,在TEMPLATES中应有红色箭头所指部分(<1.8的版本自行百度吧,就两句) 添加suit的配置文件在setting中(更多参数和设置请间官网文档) 以上suit主题配置部分就完成了.你所需要做的就是配置admin.py.这里附

Linux下开发python django程序(设置admin后台管理模块)

1.新建项目和项目下APP django-admin startproject csvt03 django-admin startapp app1 2.修改settings.py文件 设置默认安装APP INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages