Изменить request.site.root_url - PullRequest
0 голосов
/ 12 марта 2019

[править: спасибо, что задали правильный вопрос - я из-за сорняков, пытаюсь его решить] Я пытаюсь добавить Wagtail в существующее приложение Django. Часть сайта с трясогузкой работает хорошо, но я хочу добавить пункт меню, который выводит вид страницы из существующего приложения. Кажется, я столкнулся с парой проблем.

Во-первых, если желаемой страницей, отличной от Wagtail, является 'foo', то у меня есть пункт меню с URL-адресом foo. При щелчке по пункту меню он идет по адресу // localhost: 8000 / wagtail_root / foo вместо // localhost: 8000 / foo. Я отправил вопрос по этому вопросу: Wagtail Menu генерирует неправильный пользовательский URL . Я пробовал варианты на целевом URL, не влияя на поведение.

После значительных попыток обойти это, я наконец-то добавил стандартную страницу трясогузки с шаблоном формы и кнопкой для перехода по нужному адресу.

Соответствующая строка в моем шаблоне:

<form action="{{ request.site.root_url }}/foo method="get">
   ...

Теперь у меня, похоже, есть две проблемы, с которыми я, возможно, столкнулся. Первым из них (и причиной этого поста) был неправильный URL сайта (используется порт 8001). Я работаю на одном сайте, но у меня есть локальная копия моего рабочего сайта (8001), установленная на моем компьютере разработчика, которую я использую для проверки перед отправкой на сайт продукта. Пытаясь обойти эту проблему, я, похоже, создаю недействительные URL вида:

// локальный: 8000 / Foo? Там нет параметров, и я не могу найти / избавиться от источника добавленного '?', В том числе с помощью Javascript и настройки window.location =

Извините за длинное объяснение. Надеюсь, это поможет, но в основном я пытаюсь понять и найти (правильный) подход к решению проблемы. --Спасибо, [конец редактирования]

В строке 106 wagtail.core.models это указывает на то, что find_for_request может не определить правильный порт для портов с большим номером (например, 8000 во время разработки). В строке 49 вы можете изменить порт по умолчанию, но для этого потребуется изменить код трясогузки.

Я пытался определить, как изменить значение во время запуска, на основе индикатора, который я добавил в django.settings. Я попытался добавить изменения при начальной загрузке django.urls (верхний уровень) и в wagtail_hooks (не как ловушка, просто в модуле, предполагая, что он запускается при запуске трясогузки). Во всех случаях я потерпел неудачу. Можете ли вы предложить, где разместить код для настройки порта?

Thx, --Don

...