Запрос Django знает, с какой страницы пришел пользователь:
previous_page = request.META['HTTP_REFERER']
Он будет содержать что-то вроде:
>>> print(previous_page)
'http://www.myserver.com/myApp/z'
Следовательно, вы знаете, откуда вы пришли (предупреждение, относитесь к ним как к небезопасным данным и тщательно проверяйте их, они могут даже содержать вредоносные данные) и используете информацию.
Сначала вы передаете его в шаблон как
data = {
...,
# also indicate, that saved data are valid and user can leave
'previous_page': previous_page,
}
Визуализация страницы z.html
return render(request, 'myApp/z.html', data)
И в шаблоне страницы z вы добавляете тег meta-refresh к. Это приведет к тому, что после сохранения формы и загрузки страницы пользователь будет перенаправлен обратно автоматически:
{% if form_is_saved and previous_page %}<meta http-equiv="refresh" content="0; url={{ previous_page }}" />{% endif %}
Это имеет то преимущество, что форма сохраняется на странице z.html, где она заполнена, и вам не нужно обрабатывать ее страницами x и y (это единственный способ сделать это, если страницы x и y находятся за пределами вашего приложения Django).