Разрешить это движение к settings.py
, где существует новый стиль MIDDLEWARE
(представлен в Django 1.10)
Изменение это к старого стиля MIDDLEWARE_CLASSES
Я нашел ответ. Имя переменной на:
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',
]
MIDDLEWARE
модернизированная конфигурация, представленная в Django 1.10. Измените имя на MIDDLEWARE_CLASSES
, и теперь оно работает.
Поэтому теперь код:
MIDDLEWARE_CLASSES = [
'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',
]
В случае, если у любого есть эта проблема с Django 2.0, следующая конфигурация с новым стилем MIDDLEWARE
, кажется, работает ( документы здесь ):
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',
]
В случае, если у любого есть та же проблема в django 2.0.2 или позже,
просто обновление
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)
с
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',
]
, Это работало на меня причина, я создал свой проект с django 1.0.x, но позже обновил к django 2.0.2
Вы не должны изменять ПРОМЕЖУТОЧНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ на MIDDLEWARE_CLASSES. Что происходит, здесь более вероятно, что Вы создали приложение с django 1.10, и теперь Вы выполняете его с 1,9 или предыдущая версия.
Удостоверяются, что Вы используете определенную версию django (и все другие библиотеки), таким образом, Ваш проект не повреждается при развертывании или работе различных машин.
, Если у Вас есть стабильная кодовая база, просто выполненная:
pip freeze > requirements.txt
И затем при развертывании или установке нового ENV просто сделайте:
pip install -r requirements.txt
необходимо всегда рассматривать использование исправленных версий библиотек (и надо надеяться виртуальный envs), и когда обновление зависимостей тестирует каждое изменение версии.
Мое решение состояло в том, что мой Django ver. был 1.9, я переустановил назад к 1,10, не изменяя ПРОМЕЖУТОЧНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ на MIDDLEWARE_CLASSES.
Простой.....
, Если Вы выбрали код от где-то в другом месте (средний проект не создается на Вашем ПК)... затем их может быть другая конфигурация ПРОМЕЖУТОЧНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ в установке файла в Вашем коде....., таким образом, необходимо просто заменить это MIDDLLEWARE от того, который django производит (создайте одноразовый проект->, переходят к установке файлов--->, копируют ту часть ПРОМЕЖУТОЧНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ и вставляют его в проекте, в котором Вы получаете ошибку).
У меня была подобная ошибка в моем рабочем сервере, и благодаря навигационным цепочкам часового я видел, что ошибка, которая повышала, имела отношение к моим настройкам, особенно ALLOWED_HOSTS.
версия 1.10.8 Django с python 2.7.
Мои предыдущие настройки:
ALLOWED_HOSTS = ['0.0.0.0',
'beta.mydomain.co.uk',
'mydomain.co.uk',
'www.mydomain.co.uk',
'alpha.mydomain.co.uk']
Сторожевой снимок экрана Навигационных цепочек:
После этого я озирался и нашел это:
значение А, начинающееся с периода, может использоваться в качестве подстановочного знака субдомена: '.example.com' будет соответствовать example.com, www.example.com и любому другому субдомену example.com.
Ссылка на документы чиновника Django
Так мои заключительные настройки, которые решили мою проблему:
ALLOWED_HOSTS = ['0.0.0.0',
'mydomain.co.uk',
'www.mydomain.co.uk',
'.mydomain.co.uk']
Hope это было полезно :)