settings.py:
...
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'news.middleware.SimpleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
...
LANGUAGE_CODE = 'ru'
LANGUAGES = (
('ru', _("Русский")),
('en', _("English"))
)
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
urls.py:
# Django
from django.contrib import admin
from django.urls import path, include
from django.conf.urls.i18n import i18n_patterns
# Project
from news.views import hello
urlpatterns = [
path('admin/', admin.site.urls),
path('i18n/', include('django.conf.urls.i18n')),
]
urlpatterns += i18n_patterns(
path('', hello),
prefix_default_language=False,
)
views.pyfrom django.shortcuts import render
from django.http.response import HttpResponse
from django.utils.translation import get_language
def hello(request):
return HttpResponse(get_language())
Запускаю команды:
python3 manage.py makemessages -l ru
python3 manage.py makemessages -l ru
python3 manage.py compilemessages
Захожу на страницу:
Как сделать так чтобы при заходе на заходе на русскую версию сайта
/ru/ происходил редирект на
/.
Если пользователь заходит на
127.0.0.1:8000/ru/foo-bar, его должно редирекнуть на
127.0.0.1:8000/foo-bar
На каком уровне лучше это делать ? middleware или url ?