Проект django, полученный на примере Python-socketio django, не может обслуживать другие URL-адреса (по крайней мере, в django 1.11) - PullRequest
0 голосов
/ 04 декабря 2018

После игры с python-socketio s django_example и увидев, что он отлично работает, я создал новый проект django, настроил его, как в примере, скопировал приложение-пример в проект (вместе с переопределением управления сервером запускакоманда).Все работало нормально, и я смог внести несколько изменений, чтобы вы могли установить ник , некоторые вещи для повторного поиска, чтобы найти sid для псевдонима, и мог поддерживать отправку личных сообщений на сервер.Ник.Все по-прежнему работало отлично.

Я подумал, что следующим логическим шагом было, вместо того, чтобы вручную устанавливать ник, требовать от пользователя входа в систему, выставлять свое имя пользователя как var в блоке скрипта в шаблоне (Я переместил scripts/index.html в templates/index.html), и автоматически при подключении javascript автоматически генерирует мое настраиваемое событие set_nick с именем пользователя.

Я определил LOGIN_URL = '/accounts/login' в settings.py , включил 'django.contrib.auth.urls' в мой urls.py и обернул индексное представление @login_required.

Только тогда я заметил, что независимо от того, какой URL вы запрашиваете, вы всегда получаете индексное представление приложений чата - перенаправление страницы входа в систему, «/ admin /» игнорируется и т. Д.

РЕДАКТИРОВАТЬ Решено - см. Мой ответ ниже.

1 Ответ

0 голосов
/ 13 января 2019

Я заметил, что urls.py, который я слепо скопировал из примера, выглядел так:

url(r'', include('socketio_app.urls')),
url(r'^admin/', admin.site.urls), 

, а r'' был виновником (соответствует всему).Изменив это на:

url(r'^/', include('socketio_app.urls)),
url(r'^admin/', admin.site.urls),

Однако я использую Django == 1.11.Я полагаю, Django 2 склонен предлагать использовать path (или некоторую функцию с аналогичным именем) вместо использования url.Однако я не считаю, что семантика url отличается в Django 2, так что это , вероятно, проблема и для пользователей Django 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...