Django 在页面重新加载后保留下拉选择的语言

Django keep dropdown selected language after page reload

我有一个更改语言的表单(目前有 3 种语言),它可以正常工作,除了当页面重新加载时,内容更改为新语言但从下拉列表中选择的选项丢失(而是显示默认语言) .如何在页面重新加载后保留所选语言?感谢任何帮助

 <form action="{% url 'set_language' %}" method="POST">
            {% csrf_token %}
            <input type="hidden" id="languageSwitcher" name="selected" value="{{ redirect_to}}">
            <select name ="language" id="languageField">
              {% 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.name_local}} 
              </option>
              {% endfor %}
            </select>
          <input type="submit" id ="languageSwitcher" value="Change">
          </form>

要在模板中使用 LANGUAGE_CODE 变量,您必须先加载 i18n

将这行代码放在 html 模板的顶部:

{% load i18n %}

此外,请确保在您的设置和上下文处理器中启用了 i18n

USE_I18N = True
# ...
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                # ...
                'django.template.context_processors.i18n',
                # ...
            ],
        },
    },
]