С кодом, который вы используете, вам не нужно писать свои собственные представления. Форма отправит запрос POST в / i18n / setlang / с кодом языка и (необязательно) страницей перенаправления на следующую страницу в качестве параметров.
Представление django выполняет следующие действия (из документации по django)
Django ищет следующий параметр в данных POST.
- Если этого не существует или он пуст, Django пробует URL в заголовке Referrer.
- Если он пуст - скажем, если браузер пользователя подавляет этот заголовок - тогда пользователь будет перенаправлен на / (корень сайта) как запасной вариант.
Таким образом, по сути, пользователь будет перенаправлен после отправки формы, и представление django установит язык для этого пользователя в соответствии с тем, что было отправлено.
Надеюсь, это поможет,
Hoff