collectstatic, ошибка: объект «Нетип» не имеет атрибута «разделение»

#deployment #digital-ocean #wagtail

Вопрос:

Я пытаюсь развернуть проект разработки трясогузки в digitalocean. Как только я запущу на сервере команду:

python manage.py collectstatic —настройки=mysite.настройки.производство

Я получаю следующее сообщение об ошибке

 ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS").split(",")
AttributeError: 'NoneType' object has no attribute 'split'
 

Я следую командам из учебника
learnwagtail deploy, чтобы выполнить

Я пробовал разные типы комбинаций, с (‘,’) и без в качестве раскола. комбинация IP/*/ или без. Затем я попробовал пустой проект с трясогузкой, результат тот же.

Любое возвращение/помощь будут высоко оценены.

Ответ №1:

Вы лучше узнаете об основных настройки Джанго настройки модуля/с выше сообщение об ошибке, указывающее, что вы не задали ALLOWED_HOSTS параметр для любого значения, если вы только тестируете вещи, вы бы установить его ["*"] , в противном случае, вы бы поставили на имена хостов, которые вы принимаете на данный проект/сервер, что-то вроде:

 **ALLOWED_HOSTS = ['domainname.com', 'domain2.net', 'www.domain.com']**
 

только в этом случае python может находить элементы и применять к ним метод разделения, конечно, когда в настройках нет элементов ALLOWED_HOSTS , это означает, что значения Нет и NoneType объект вообще не имеет атрибутов.

Комментарии:

1. Наверное, я выразился недостаточно ясно. Я действительно пытался использовать [«*»] в одиночку и с IP, и domainename.com. Проблема та же самая. Вы можете проверить этот пример . Если верить результатам Google, это, вероятно, как-то связано с тем фактом, что моя операционная система-Windows X.

2. после того, как я проверил внесенное вами изменение и ссылку, которой вы поделились, кажется, что существует множество возможных причин, без глубокого изучения того, что вызывает блокировки между запросом браузера и ответом сервера, нет никакого способа что-либо исправить, если вы можете следовать предложению в ссылке, которой вы поделились (проблема № 4254 в репо трясогузки), если вы все еще не смогли найти какие-либо связанные проблемы, то, пожалуйста, не делитесь конфиденциальными опциями в settings.py(или в вашем случае: mysite.настройки.производство) Тогда я, возможно, смогу найти причину.. (но, пожалуйста, следите за разговором по вопросу № 4254, прежде чем сдаваться)

3. моя постановка. py : ОТЛАДКА = Истинный СЕКРЕТНЫЙ КЛЮЧ = ‘my_secret_key’ РАЗРЕШЕННЫЕ ХОСТЫ = [‘*’]

4. Что касается темы. Никакой дополнительной информации для моего приложения. Я бегу cmd.exe /c chcp 1252 для всех команд сообщение об ошибке одно и то же. У меня нет переменной DATA_UPLOAD_MAX_NUMBER_FIELDS

5. Проблема № 4254 не имеет к этому отношения. Это та же ошибка Python (попытка вызвать «разделение» на то, что должно быть строкой, но не является таковой), но в совершенно другой области кода.

Ответ №2:

Строка, показанная в сообщении об ошибке:

 ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS").split(",")
 

это то, что вы (или кто-то другой…) в какой-то момент поместили в свой файл настроек, чтобы сообщить ему, что вместо того, чтобы РАЗРЕШЕННЫЕ ХОСТЫ были напрямую определены в настройках, их следует выбрать из системной переменной DJANGO_ALLOWED_HOSTS. Учебник, на который вы ссылаетесь, не учитывает эту настройку.

Если вы хотите сохранить эту настройку, вам нужно будет узнать, как устанавливать переменные среды в DigitalOcean — вероятно, это будет так же, как в учебнике устанавливается модуль DJANGO_SETTINGS_MODULE. В противном случае вам следует найти и удалить эту строку, а также просто оставить ту, которая напрямую устанавливает ALLOWED_HOSTS:

 ALLOWED_HOSTS = ['mydomain.example.com']