Всем привет!
Возникла задача размещения множества форм на разных страницах. Каждая форма - это часть отдельного приложения (app) со своими путями. Почти все приложения - свои, некоторые - сторонние.
Вроде бы очевидное решение - использовать
inclusion-tags, но, к сожалению не нашла хороших примеров реализации, а вопросов возникла масса, основных два:
1. Как правильно написать тэг?
Если всю обработку помещать во view, то для тэга остаётся только рендер формы:
@register.inclusion_tag('core/my/form.html')
def my_form():
return {'form': MyForm()}
но в этом случае непонятно, как будут подсвечиваться неправильно заполненные поля в форме, ведь она будет каждый раз отрисовываться пустой.
Если всю логику переносить в тэг, то как его подключать к путям и как отличать post запрос от разных форм - анализировать путь или вводить скрытый name для формы?
2. Как возвращать пользователя обратно на страницу с обработчика формы? Например пользователь находится на странице '/index', а обработчик формы имеет путь '/core/subscribe'. При нажатии кнопки в форме должен отработать view на '/core/subscribe', а потом вернуть пользователя на '/index' с сообщением об успешной подписке или с невалидной формой и подсвеченными неверно заполнеными полями.
Может идея использование inclusion tags изначально неверная и есть другие способы решения этой задачи?