我已经使用 wagtail 和 wagtail-modeltranslation 实现了一个多语言站点,但是我遇到了模板片段缓存的问题。缓存有效,但不尊重单独的语言。保存后首先访问的语言将适用于所有语言。我尝试了两种设置缓存键的方法都无济于事。首先来自django 文档,其次尝试在模板中显式包含语言代码
第一的:
{% cache 604800 about_copy LANGUAGE_CODE %}
... HTML ...
{% endcache %}
二:使用简单的模板标签
from django.utils.translation import get_language
@register.simple_tag(takes_context=True)
def get_lang(context, *args, **kwargs):
return get_language()
{% cache 604800 about_copy get_lang %}
... HTML ...
{% endcache %}
我的保存方法如下:
def save(self, *args, **kwargs):
"""Create a template fragment key.
Then delete the key."""
key = make_template_fragment_key("about_copy")
cache.delete(key)
return super().save(*args, **kwargs)
无论不包括任何与语言相关的参数,这都会清除正确的片段
任何帮助将不胜感激。谢谢!