Python django应用程序中的区域设置未更改
我是Django的新手,我需要做一个I18N系统。我有一个url.py:Python django应用程序中的区域设置未更改,python,django-i18n,Python,Django I18n,我是Django的新手,我需要做一个I18N系统。我有一个url.py: from django.contrib import admin from django.urls import path, include from . import views urlpatterns = [ path('', views.index, name='home'), path(r'^i18n/', include('django.conf.urls.i18n')), ] 我制作了这个ht
from django.contrib import admin
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.index, name='home'),
path(r'^i18n/', include('django.conf.urls.i18n')),
]
我制作了这个html来改变语言:
{% load i18n %}
<form action="/i18n/setlang/" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="{{request.path}}" />
<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="selected"{% endif %}>
{{ language.name_local }} ({{ language.code }})
</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
{%loadi18n%}
{%csrf_令牌%}
{%get_当前语言为语言代码%}
{%get_可用语言为语言%}
{%get_language_info_list for LANGUAGES as LANGUAGES%}
{%用于语言中的语言%}
{{language.name_local}}({{language.code}})
{%endfor%}
但当我点击“Go”按钮时,服务器的响应是:找不到页面(404),当前路径i18n/setlang/与这些路径中的任何一个都不匹配。我仍然使用python 3.6和Django 2.0.4
我不知道该如何解决它。问题就在这里:
path(r'^i18n/', include('django.conf.urls.i18n')),
我剪掉了r'^':
path('i18n/', include('django.conf.urls.i18n')),
而且有效