Css Django在重新加载页面后保留下拉选择的语言
我有一个表单可以更改语言(到目前为止有3种语言),它可以正常工作,只是当页面重新加载时,内容会更改为新语言,但下拉列表中所选的选项会丢失(而是显示默认语言)。重新加载页面后,如何保留所选语言?谢谢你的帮助Css Django在重新加载页面后保留下拉选择的语言,css,django,forms,dropdown,reload,Css,Django,Forms,Dropdown,Reload,我有一个表单可以更改语言(到目前为止有3种语言),它可以正常工作,只是当页面重新加载时,内容会更改为新语言,但下拉列表中所选的选项会丢失(而是显示默认语言)。重新加载页面后,如何保留所选语言?谢谢你的帮助 <form action="{% url 'set_language' %}" method="POST"> {% csrf_token %} <input type="hidden" id="languageSwitcher
<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>
{%csrf_令牌%}
{%get_可用语言为语言%}
{%get_language_info_list for LANGUAGES as LANGUAGES%}
{%用于语言中的语言%}
{{language.name_local}}
{%endfor%}
要在模板中使用语言\u 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',
# ...
],
},
},
]
我们可以查看您的views.py吗?我已经在url.py urlpatterns=[path('i18n/',include('django.conf.urls.i18n'))、path('admin/',admin.site.urls])中包含了它。我没有使用任何与语言更改表单相关联的视图,我想我在这里遗漏了很多。我只是添加了'django.template.context\u processors.i18n',它工作起来很有魅力。谢谢lot@Gora没问题!如果这解决了您的问题,您可以按下向下箭头下的“复选标记”。这有助于其他人找到正确的答案,如果他们有同样的问题。祝你好运