Django set_lanuguage未更改enitre网页的语言,因此无法通过视图进行重定向
我的表单带有语言选择按钮和更新按钮。客户更新表单通过django表单和视图实现,但语言选择直接在html文件中使用以下代码实现:Django set_lanuguage未更改enitre网页的语言,因此无法通过视图进行重定向,django,python-3.x,internationalization,django-i18n,Django,Python 3.x,Internationalization,Django I18n,我的表单带有语言选择按钮和更新按钮。客户更新表单通过django表单和视图实现,但语言选择直接在html文件中使用以下代码实现: {% load i18n %} <form action="{% url 'set_language' %}" method="post">{% csrf_token %} <input name="next" type="hidden" value="{{ redirect_to }}" /> <select name
{% load i18n %}
<form action="{% url 'set_language' %}" method="post">{% csrf_token %}
<input name="next" type="hidden" value="{{ redirect_to }}" />
<select name="language">
{% get_current_language as LANGUAGE_CODE %}
{% 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 }} ({{ language.code }})
</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
我的应用程序url配置如下:
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^personBasic', views.person_detail, name='person_detail'),
url(r'^licenseeBasic', views.licensee_detail, name='licensee_detail'),
url(r'^address', views.address, name='address'),
url(r'^contact', views.contact, name='contact'),
url(r'^email', views.email, name='email'),
]
我的每个url,例如personBasic,都连接到它的相关视图,而视图则连接到相关表单
现在,当我在地址栏中输入以下url并按enter键时
由于上面的url配置,它转到索引视图,该视图重定向到以下url
并在浏览器中显示图像。
因此,选择任何语言都会在不改变语言的情况下再次呈现相同的页面
当我在浏览器中检查任何语言按钮的元素时,我会得到以下url请求
而不是
问题是当按下语言按钮时,地址栏中的整个url不应该呈现为翻译版本吗。custupdate之后的任何内容都会以某种方式被跳过,而i18n/setlang会附加在custupdate之后,我希望它是这样的
/custupdate/personBasic/i18n/setlang/
或
/custupdate/contact/i18n/setlang/
或
/custupdate/email/i18n/setlang/将您的根URLconf更改为:
urlpatterns = [
url(r'^i18n/', include('django.conf.urls.i18n')),
]
urlpatterns += i18n_patterns(
url(r'^', include('custupdate.urls')),
)
另外,在表单中,完全删除名为next
的隐藏输入。您尚未定义重定向到变量
另外,确保你有
urlpatterns = [
url(r'^i18n/', include('django.conf.urls.i18n')),
]
urlpatterns += i18n_patterns(
url(r'^', include('custupdate.urls')),
)