When I trying to access the admin page it gives me the following error:
System check identified no issues (0 silenced).
June 21, 2016 - 15:26:14
Django version 1.9.7, using settings 'librato_chart_sender_web.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Internal Server Error: /admin/
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Library/Python/2.7/site-packages/django/contrib/admin/sites.py", line 265, in wrapper
return self.admin_view(view, cacheable)(*args, **kwargs)
File "/Library/Python/2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/Library/Python/2.7/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/Library/Python/2.7/site-packages/django/contrib/admin/sites.py", line 233, in inner
if not self.has_permission(request):
File "/Library/Python/2.7/site-packages/django/contrib/admin/sites.py", line 173, in has_permission
return request.user.is_active and request.user.is_staff
AttributeError: 'WSGIRequest' object has no attribute 'user'
[21/Jun/2016 15:26:18] "GET /admin/ HTTP/1.1" 500 78473
Im quite new in django ... but I followed this tutorial: https://docs.djangoproject.com/en/1.9/ref/contrib/admin/
I dont have any custom AdminSites and custom AdminModels.
I already googled about this problem but still I cannot solve it for my case in any way. Can you help ?
here is my settings.py
:
"""
Django settings for librato_chart_sender_web project.
Generated by 'django-admin startproject' using Django 1.11.dev20160523235928.
For more information on this file, see
https://docs.djangoproject.com/en/dev/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/dev/ref/settings/
"""
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/dev/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '*1@+=wzrqx^6$9z&@2@d8r(w$js+ktw45lv2skez(=kz+rwff_'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'librato_chart_sender',
'fontawesome',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
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',
]
ROOT_URLCONF = 'librato_chart_sender_web.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'librato_chart_sender/templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'librato_chart_sender_web.wsgi.application'
# Database
# https://docs.djangoproject.com/en/dev/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# Password validation
# https://docs.djangoproject.com/en/dev/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/dev/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'GMT'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/dev/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS = [
('css', 'librato_chart_sender/static/css'),
('js', 'librato_chart_sender/static/js'),
('fonts', 'librato_chart_sender/static/fonts'),
]
and admin.py
:
from django.contrib import admin
from .models import Configuration
# Register your models here.
admin.site.register(Configuration)
I had a similar error in my production server and thanks to sentry's breadcrumbs I saw that the error that was raising had to do with my settings, especially the ALLOWED_HOSTS.
Django version 1.10.8 with python 2.7.
My previous settings:
Sentry Breadcrumbs screen shot:
After that I looked around and found this:
Link to Django official docs
So my final settings that solved my problem:
Hope this was useful :)
To resolve this go to
settings.py
where there is new-styleMIDDLEWARE
(introduced in Django 1.10)Change that to old-style
MIDDLEWARE_CLASSES
https://docs.djangoproject.com/en/stable/topics/http/middleware/#upgrading-pre-django-1-10-style-middleware
In case anyone is having this problem with Django 2.0, the following configuration with new-style
MIDDLEWARE
seems to work (docs here):I found the answer. The variable name on:
MIDDLEWARE
is the new-style configuration introduced in Django 1.10. Change the name toMIDDLEWARE_CLASSES
and now it works.So now the code is:
In case anyone is having the same problem in django 2.0.2 or later,
just update
with
It worked for me cause i created my project with django 1.0.x but later updated to django 2.0.2
Simple.....
If you have picked the code from somewhere else(mean project is not created on your pc)... then their may be a different configuration of MIDDLEWARE in setting file in your code.....so you need to just replace that MIDDLLEWARE from the one that your django produces( create a throwaway project->go to setting files ---> copy that MIDDLEWARE part and paste it in the project in which you are getting error).