Можно ли в Django использовать контекст в редиректе?

Я пытаюсь использовать редирект с контекстом, но получаю исключение NoReverseMatch. Фрагмент кода выглядит следующим образом: return redirect(reverse('td:success', kwargs={ 'data': my_data }))

Однако, когда я использую render, все идет хорошо, и я могу получить доступ к контексту в шаблоне. Но вместо этого мне нужен редирект.

введите описание изображения здесь

Но я хочу перенаправление вместо этого.

You can't. The redirect(…) function [Django-doc] simply returns a HTTP response that contains the URL to visit next. The browser will then visit that URL, it is thus the browser that makes the next HTTP request, and the previous request and response are "destroyed". You thus need the database, cookies, session variables, URL parameters, etc. to pass data between the two requests.

Если вы используете параметр URL, вы можете добавить к нему данные. В этом случае ваш фрагмент кода может быть упрощен до:

return redirect('td:success', data=my_data)

нет необходимости работать с reverse(…), поскольку redirect(…) будет вызывать reverse(…) внутренне.

Вернуться на верх