Я использую Wagtailtrans и установил prefix_default_language = False в моем urls.py. Язык по умолчанию - en. Root страница 127.0.0.1:8000/ загружается как положено. Когда я перехожу на другой язык (в моем случае загрузите 127.0.0.1:8000/nl/), переведенная страница загружается, как и ожидалось. Но когда я снова переключаюсь на root 127.0.0.1:8000/, я получаю страницу не найдена.
Когда я затем загружаю 127.0.0.1:8000/en/, я получаю страницу не найденную, как ожидалось, но впоследствии загрузка 127.0.0.1:8000/ дает мне правильную домашнюю страницу Engli sh. Итак, очевидно, что некоторые языковые настройки изменились.
Я предполагаю, что это вызвано Wagtailtrans TranslationMiddleware, потому что, когда я вместо этого использую LocaleMiddleware, такое поведение не происходит. Мой вопрос: это «нормальное» или, возможно, «намеренное» поведение, или я делаю что-то не так? Мне кажется, что когда prefix_default_language = False, домашняя страница всегда должна быть найдена. И чего мне не хватает, если я просто продолжаю использовать LocaleMiddleware (не рекомендуется в документах)?
settings / base.py:
MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'wagtail.core.middleware.SiteMiddleware',
'wagtailtrans.middleware.TranslationMiddleware', # depends on the previous line and replaces the next line
# 'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
...
project urls.py:
...
urlpatterns += i18n_patterns(
...
url(r"", include(wagtail_urls)),
prefix_default_language=False
)
Любая помощь приветствуется!