我意识到这是一个众所周知的problem,problem,但我仍然没有找到足够的解决方案。
我想在我的Django应用程序中使用@cache_page查看一些视图,如下所示:
@cache_page(24 * 60 * 60)
def some_view(request):
...
问题是我也在使用i18n和语言切换器来切换每个页面的语言。所以,如果我打开缓存,我不会得到我期望的结果。看来我得到的是最后一个缓存页面。
我试过这个:
@cache_page(24 * 60 * 60)
@vary_on_headers('Content-Language', 'Accept-Language')
def some_view(request):
...
编辑 ...而且:
@cache_page(24 * 60 * 60)
@vary_on_cookie
def some_view(request):
...
结束编辑
但我得到的结果相同。
当然,如果我删除缓存,一切都按预期工作。
任何帮助都会非常感激。
答案 0 :(得分:0)
好的 - 浏览器缓存似乎存在问题,而不是Django本身。我发现在开发过程中关闭所有浏览器缓存很有用(我知道这很明显)。
答案 1 :(得分:0)
在Django 1.10上,语言由装饰器处理
django.utils-> cache.py中的代码具有_generate_cache_key方法,该方法以返回形式返回 _i18n_cache_key_suffix (请求,cache_key)
如果我们发现它可以适应语言设置。