Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django set_lanuguage未更改enitre网页的语言,因此无法通过视图进行重定向_Django_Python 3.x_Internationalization_Django I18n - Fatal编程技术网

Django set_lanuguage未更改enitre网页的语言,因此无法通过视图进行重定向

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

我的表单带有语言选择按钮和更新按钮。客户更新表单通过django表单和视图实现,但语言选择直接在html文件中使用以下代码实现:

{% 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')),
)