wagtailtrans с prefix_default_language = False: root (/) не найден при смене языка - PullRequest
0 голосов
/ 08 апреля 2020

Я использую 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
)

Любая помощь приветствуется!

...