0

私はこれが既知の問題であることに気づきましたが、私はまだ適切な解決策を見つけていません。

次のように、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):
    ...

編集終了

しかし、同じ結果が得られます。

もちろん、キャッシュを削除すると、すべてが期待どおりに機能します。

どんな助けでも大歓迎です。

4

2 に答える 2

0

わかりました-Django自体ではなく、ブラウザのキャッシュに問題があるようです。それ以来、開発中のすべてのブラウザキャッシュをオフにすることが便利であることがわかりました(私が知っていることは明らかです)。

于 2012-07-19T16:16:35.087 に答える
0

django 1.10では、言語はデコレータによって処理されます

django.utils-> cache.pyのコードには、return _i18n_cache_key_suffix(request、cache_key)として返されるメソッド_generate_cache_keyがあります。

それを調べると、言語設定に対応しています。

于 2018-12-22T20:39:28.270 に答える