Django rosetta проблема с изменением переводов
Я использую django-rosetta для переводов в моем django проекте и у меня возникла проблема с изменением переводов с помощью страницы администрирования rosetta. В среде разработки все работает отлично. Проблема возникает на рабочем сервере, где django запущен с gunicorn, и это, вероятно, связано с настройками кэша в Django. Допустим, у меня есть html-файл с переведенной строкой "Hello". Слово "Hello" переведено как "Witaj", поэтому, когда я открываю страницу на своем родном языке, у меня отображается "Witaj". Затем я меняю перевод на "Cześć" ("Witaj" -> "Cześć") и нажимаю кнопку "Сохранить и перевести следующий блок". Далее происходит интересная часть. Когда я перезагружаю эту страницу в настройках локального языка, у меня отображается случайным образом один из "Witaj" или "Cześć". Я читал об этом и нашел что-то подобное в документации rosetta
Пожалуйста, убедитесь, что в настройках вашего Django настроен соответствующий бэкенд CACHES, если ваше приложение Django обслуживается в многопроцессной среде, иначе различные серверные процессы, обслуживающие последующие запросы, не смогут найти данные, оставленные предыдущими запросами.
и тогда
TL;DR: если вы запускаете Django с gunicorn, mod-wsgi или другим многопроцессным окружением, то бэкенд CACHES LocMemCache по умолчанию в Django не подходит: используйте memcache вместо него, иначе у вас возникнут проблемы.
.
Есть ли у кого-нибудь идея, каким может быть решение? Есть мои настройки кэшей в django settings.py, где я добавил ключ rosetta с MemcachedCache, как указано в документации rosetta
CACHES = {
"default": {
"BACKEND": "django.core.cache.backends.filebased.FileBasedCache",
"LOCATION": "/var/tmp/django_cache",
},
"rosetta": {
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"LOCATION": "127.0.0.1:11211",
},
}