В моей Django URL, у меня есть много шаблонов URL, которые заканчиваются:Джанго изменить имя текущего URL и аргументы
(redirect/(?P<redirect_to>\w+))
Это означает, что эти адреса могут быть (или нет), заканчивая /redirect/TARGET/
. Эти шаблоны URL имеют другие именованные аргументы (в основном одно: pk
)
Теперь я хотел бы в шаблонах, используемых этими шаблонами URL, чтобы изменить текущий путь к странице, просто добавив аргумент redirect_to, и сохранение остальных аргументов и обратного имени URL нетронутым.
Мне удалось получить обратное имя URL в шаблоне, добавив resolve(path).url_name
в текущий контекст, а затем использовать его с тегом шаблона {% url %}
.
Хотелось бы узнать, есть ли простой способ динамически добавлять аргументы (от resolve(path).kwargs
) к URL-адресу обратного тега?
Не уверен, хотите ли вы этого '{% url url_name my_kwarg1 = 'any_value' my_kwarg2 = context_var%}' Ваш вопрос путается. –
Я не уверен, что понимаю, что вы имеете в виду. Вы намерены добавить логику перенаправления к фактическому шаблону? –
Моя первоначальная цель состояла в том, чтобы иметь три разных формы, каждая из которых перенаправлялась в разных местах, когда была отправлена форма. Поэтому мне нужно было иметь способ получить измененный URL-адрес на странице, заканчивающейся/redirect/FOO. Тег шаблона, указанный в ответе, выполняет задание, однако я закончил работу над тем, что мне нужно было сделать, используя комбинацию имен кнопки отправки (атрибут имени кнопки отправки передается как пустой ключ на сервер при отправке формы) и переопределение get_success_url() в базовом FormView. – pistache