62
задан 22 June 2018 в 23:12

8 ответов

Разрешить это движение к settings.py, где существует новый стиль MIDDLEWARE (представлен в Django 1.10)

Изменение это к старого стиля MIDDLEWARE_CLASSES

https://docs.djangoproject.com/en/stable/topics/http/middleware/#upgrading-pre-django-1-10-style-middleware

84
ответ дан 31 October 2019 в 13:06

Я нашел ответ. Имя переменной на:

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',
]
67
ответ дан 31 October 2019 в 13:06

В случае, если у любого есть эта проблема с 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',
]
35
ответ дан 31 October 2019 в 13:06

В случае, если у любого есть та же проблема в 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

19
ответ дан 31 October 2019 в 13:06

Вы не должны изменять ПРОМЕЖУТОЧНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ на MIDDLEWARE_CLASSES. Что происходит, здесь более вероятно, что Вы создали приложение с django 1.10, и теперь Вы выполняете его с 1,9 или предыдущая версия.

Удостоверяются, что Вы используете определенную версию django (и все другие библиотеки), таким образом, Ваш проект не повреждается при развертывании или работе различных машин.

, Если у Вас есть стабильная кодовая база, просто выполненная:

pip freeze > requirements.txt

И затем при развертывании или установке нового ENV просто сделайте:

pip install -r requirements.txt

необходимо всегда рассматривать использование исправленных версий библиотек (и надо надеяться виртуальный envs), и когда обновление зависимостей тестирует каждое изменение версии.

14
ответ дан 31 October 2019 в 13:06

Мое решение состояло в том, что мой Django ver. был 1.9, я переустановил назад к 1,10, не изменяя ПРОМЕЖУТОЧНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ на MIDDLEWARE_CLASSES.

2
ответ дан 31 October 2019 в 13:06

Простой.....

, Если Вы выбрали код от где-то в другом месте (средний проект не создается на Вашем ПК)... затем их может быть другая конфигурация ПРОМЕЖУТОЧНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ в установке файла в Вашем коде....., таким образом, необходимо просто заменить это MIDDLLEWARE от того, который django производит (создайте одноразовый проект->, переходят к установке файлов--->, копируют ту часть ПРОМЕЖУТОЧНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ и вставляют его в проекте, в котором Вы получаете ошибку).

1
ответ дан 31 October 2019 в 13:06

У меня была подобная ошибка в моем рабочем сервере, и благодаря навигационным цепочкам часового я видел, что ошибка, которая повышала, имела отношение к моим настройкам, особенно 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']

Сторожевой снимок экрана Навигационных цепочек: sentry breadcrumb screenshot

После этого я озирался и нашел это:

значение А, начинающееся с периода, может использоваться в качестве подстановочного знака субдомена: '.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 это было полезно :)

0
ответ дан 31 October 2019 в 13:06

Другие вопросы по тегам:

Похожие вопросы: