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:

http://157.230.188.234/

После исправления я отредактирую это сообщение и удалю IP.

Реальным примером этой проблемы может быть копирование ссылки, передача ее кому-либо, и невозможность изменить язык веб-сайта.

Заранее спасибо!

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