Локаль из приложения django не меняется - PullRequest
0 голосов
/ 04 июля 2018

Я новичок в 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')),
]

И я сделал этот 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>

Но когда я нажимаю кнопку «Перейти», ответ сервера: Страница не найдена (404), Текущий путь, i18n / setlang /, не соответствует ни одному из них. Я продолжаю использовать Python 3.6 и Django 2.0.4.

И я понятия не имею, как мне это решить.

1 Ответ

0 голосов
/ 04 июля 2018

Проблема была здесь:

path(r'^i18n/', include('django.conf.urls.i18n')),

Я отрезал г '^':

path('i18n/', include('django.conf.urls.i18n')),

и работает!

...