background: Widok nazywa gdy pingi usług płatniczych poprzeć wyniku płatności za kulisami - afterwhich muszę wysłać e-mail w odpowiednim języku, aby potwierdzić płatność i tak dalej. Mogę odzyskać kod języka w żądaniu z serwera płatności i chciałbym go użyć wraz z systemami i18n Django, aby określić, w jakim języku mam wysyłać moje wiadomości.zestaw język w widoku django
Potrzebuję ustawić język mojego django aplikacja z widoku. A następnie wykonaj rendering mojego szablonu i wyślij e-mailem wszystko za jednym razem.
ustawienie request.session['django_language'] = lang
wpływa tylko na następny widok podczas testowania.
Czy jest jakiś inny sposób na zrobienie tego?
Cheers,
Guy
Świetna wskazówka. Pomógł mi rozwiązać dość niezwiązany problem, który miałem (gdzie testowanie zawodziło, ponieważ niektóre wcześniejsze testy używały klienta testowego django, który zostawił system z nieoczekiwaną wartością ustawienia narodowego.) Dodawanie tłumaczenia.deactivate_all() na początku doctest naprawił problem) –
Jak mogę go użyć, aby ustawić język podczas logowania użytkownika w moim widoku niestandardowym? Kod języka znajduje się w tabeli UserProfile. – robos85
Ostrzeżenie, Właśnie naprawiłem błąd w bieżącym rozwoju, ze względu na translation.activate: wątki są ponownie wykorzystywane między żądaniami i utrzymują aktywację ostatniego języka. Prowadzi to do dziwnych rzeczy, takich jak zmiana języka przez cały czas. Jeśli ręcznie uruchomisz plik transaction.activate, nie zapomnij użyć polecenia translation.deactivate po wyrenderowaniu wszystkich napisów (to właśnie robi LocaleMiddleware po renderowaniu). – vincent