По Теме Корневого Каталога

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

Напомню, что вся суета связана с тем, что корневой каталог сайта заказчика (и мой) не всегда является корневым каталогом домена.

Те.

Первая страница сайта часто находится по адресу сайт/диджей по разным техническим причинам.

Самый распространенный — у заказчика есть какие-то модули на PHP, которые находятся на том же сервере и тоже нужны.

Проблема в том, что в шаблонах и httpredirects нужно указывать полные пути к страницам.

И если внутри самой Djanga этот путь еще ясен (хотя я считаю необходимым указывать полный путь к странице из представления при httpredirecting), то корневой каталог может измениться.

И тогда будет грустно перебирать весь код, чтобы это исправить.

Я нашел следующее решение: установите переменную ROOT = '' в settings.py и напишите небольшой тег шаблона: корень.

py:

из библиотеки импорта django.template регистрация = Библиотека() регистр .

simple_tag защита корня(): """ Возвращает строку, содержащуюся в настройке ROOT. """ пытаться: настройки импорта кроме ImportError: возвращаться '' вернуть настройки.

ROOT

и это все.

Теперь в шаблонах после {%load root%} пишем {%root%} в начале каждого пути и получаем то, что хотели.

В viewax соответственно используем settings.ROOT для тех же целей Беда пришла из неожиданных мест. Оказалось, что в недрах авторизации Django есть прибитый путь '/accounts/login', на который перенаправляются запросы, если требуется авторизация.

На данный момент я вижу два выхода: либо не использовать стандартные декораторы для проверки авторизован ли пользователь (что неудобно), либо взломать саму Djanga. Пока что я пошел по второму пути, но это неправильно.

Я добавил строку в django/contrib/auth/__init__.py

если hasattr(settings,'LOGIN_URL'): LOGIN_URL=settings.LOGIN_URL
и добавлен в settings.py
LOGIN_URL = '%s/логин/' %ROOT
Теги: #python #django #авторизация #Chulan
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.