трясогузка search_backend многоязычный

В документации по трясогузке говорится, что поиск PostgreSQL - хорошая альтернатива для относительно небольших сайтов. В документации показано, как настроить серверную часть поиска.

WAGTAILSEARCH_BACKENDS = {
    'default': {
        'BACKEND': 'wagtail.contrib.postgres_search.backend',
        'SEARCH_CONFIG': 'english',
    }
}

документы трясогузка

Однако веб-сайт, который я создаю, имеет более одного языка. Как мне настроить другие языки в WAGTAILSEARCH_BACKEND?

Возможен ли "SEARCH_CONFIG": ["английский", "голландский"]? Документы об этом ничего не говорят.

2 ответа

Ответ на старый вопрос, но, возможно, кто-то сочтет это полезным, поскольку я только что столкнулся с необходимостью в этом.

После настройки по умолчанию (оставьте как запасной вариант) создайте конфигурацию серверной части для каждого языка, используя код языка.

      WAGTAILSEARCH_BACKENDS = {
    'default': {
        'BACKEND': 'wagtail.contrib.postgres_search.backend',
        'SEARCH_CONFIG': 'english',
    },
    'en': {
        'BACKEND': 'wagtail.contrib.postgres_search.backend',
        'SEARCH_CONFIG': 'english',
    },
    'nl': {
        'BACKEND': 'wagtail.contrib.postgres_search.backend',
        'SEARCH_CONFIG': 'dutch',
    },
}

Теперь вы можете получить серверную часть для текущего языка из

      s = get_search_backend(backend=Locale.get_active().language_code)

Это языки по умолчанию в POSTGRES

      $ psql -c "\dF"

Схема | Имя | Описание ------------ + ------------ + ----------------------- ---------------- pg_catalog | датский | конфигурация для датского языка pg_catalog | голландский | конфигурация для голландского языка pg_catalog | английский | конфигурация для английского языка pg_catalog | финский | конфигурация для финского языка pg_catalog | французский | конфигурация для французского языка pg_catalog | немецкий | конфигурация для немецкого языка pg_catalog | венгерский | конфигурация для венгерского языка pg_catalog | итальянский | конфигурация для итальянского языка pg_catalog | норвежский | конфигурация для норвежского языка pg_catalog | португальский | конфигурация для португальского языка pg_catalog | румынский | конфигурация для румынского языка pg_catalog | русский | конфигурация для русского языка pg_catalog | простой | простая конфигурация pg_catalog | испанский язык| конфигурация для испанского языка pg_catalog | шведский | конфигурация для шведского языка pg_catalog | турецкий | конфигурация для турецкого языка

Думаю, я нашел как. Было бы неплохо, если бы это подтвердилось. У трясогузки это из wagtail.search.backends import get_search_backend

Если вы посмотрите на исходный код, вы увидите, что вы можете определить бэкэнд при вызове этой функции.

s = get_search_backend(backend= по умолчанию)

Таким образом, вы можете переключать серверную часть на лету, сначала вызвав эту функцию, и переключиться на другую серверную часть в зависимости от языка.

Трясогузка такая классная!

Другие вопросы по тегам