[英]django-user-accounts 'WSGIRequest' object has no attribute 'user'
因此,我遵循django-user-accounts的文档,正在获取错误消息'WSGIRequest'对象没有属性'user' 。
MIDDLEWARE_CLASSES = [
...
"account.middleware.LocaleMiddleware",
"account.middleware.TimezoneMiddleware",
...
]
MIDDLEWARE_CLASSES已过时,因此我将两行代码仅放在MIDDLEWARE中。
INSTALLED_APPS = [
'account',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.sites',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
"account.middleware.LocaleMiddleware",
"account.middleware.TimezoneMiddleware",
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
根urls.py
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r"^account/", include("account.urls")),
]
我进行了帐户的 makemigrations ,然后又进行了迁移 。 服务器运行正常,没有错误,但是每当我转到localhost:8000 / accounts / login时,我要么得到404要么没有属性'user'
在使用Django 2.0时,我的解决方案是确保Django的中间件早于django-user-accounts中间件,并且我认为所有应用程序都是如此。
只需更改订单顺序就可以了:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
"account.middleware.LocaleMiddleware",
"account.middleware.TimezoneMiddleware",
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.