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',
# ...
],
},
},
]
我有一个更改语言的表单(目前有 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',
# ...
],
},
},
]