Django не меняет язык при посещении URL с кодом языка
Я столкнулся со странной ситуацией при попытке изменить язык после добавления кода языка к url
example -- domain.pt/en
Если я захожу на сайт нормально через домен без добавленного кода языка, он прекрасно работает, я могу менять язык без проблем.
Если я каким-то образом копирую ссылку и вставляю ее в браузер, переключатель языков перестает работать.
example -- domain.pt
На данный момент я перевел несколько сайтов Django и обнаружил, что это происходит на всех из них.
#urls.py
urlpatterns = [
path('i18n', include('django.conf.urls.i18n')),
path('admin/', admin.site.urls),
]
urlpatterns += i18n_patterns(
path('', include('base.urls')),
prefix_default_language=True,
)
шаблон
<form id="lang-switcher" action="{% url 'set_language' %}" method="post">{% csrf_token %}
<input type="hidden" name="next" value"{{ redirect_to }}">
<select class="language_selector" name="language" id="" onchange="this.form.submit()">
{% get_available_languages as LANGUAGES %}
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<option value="{{ language.code }}" {% if language.code == LANGUAGE_CODE %} selected {% endif %}>
{{ language.code }}
</option>
{% endfor %}
</select>
</form>
settings.py
LANGUAGE_CODE = 'pt'
TIME_ZONE = 'Europe/Lisbon'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LOCALE_PATHS = [
BASE_DIR / 'locale',
]
LANGUAGES = [
('pt', 'Português'),
('en', 'Inglês'),
('es', 'Espanhol'),
('fr', 'Francês'),
('de', 'Alemão'),
]
На данный момент к нему можно получить доступ через этот IP:
После исправления я отредактирую это сообщение и удалю IP.
Реальным примером этой проблемы может быть копирование ссылки, передача ее кому-либо, и невозможность изменить язык веб-сайта.
Заранее спасибо!