Dodałem adresy URL specyficzne dla ustawień regionalnych do mojej aplikacji Django z i18n_patterns i wszystko działa dobrze, ale w niektórych przypadkach muszę mieć adres URL wskazujący widok bez informacji o ustawieniach regionalnych.
Moja obecna konfiguracja działa tak, że strony w języku angielskimnie mam lokalizacji na ścieżce, np .: www.foobar.com, ale wszystkie inne jak www.foobar.com/et/ itp. To działa dobrze. Teraz każdy użytkownik ma stronę „profilu publicznego” na www.foobar.com/u/123 itd.
Jeśli po prostu zrobię {% url user_profile_page%} wszablon, zawsze dostaję ustawienia regionalne również w adresie URL, ale chciałbym, aby zawsze wyświetlał wersję nielokalną, ponieważ chcę, aby profile publiczne miały nielokalny adres URL (i fakt, że jeśli ktoś używa inny język, a następnie przekierowuje do adresu URL opartego na ustawieniach regionalnych, jest w porządku).
Dokumentacja Django nic nie sugeruje, że tag szablonu {% url%} jest w stanie to zrobić, ale czy jest coś?
Odpowiedzi:
2 dla odpowiedzi № 1W kodzie szablonu powinieneś móc użyć znacznika {% language%} w następujący sposób, aby określić język do cofania adresów URL:
{% language en %}
<a href="{% url user_profile_page %}">User 1</a>
{% endlanguage %}
Podanie kodu języka angielskiego w tym przypadku powinno skutkować otrzymaniem adresu URL bez prefiksu.