0

私のコードでは、次のようなルックアップをキャッシュする必要があります。

MyModel.objects.get(slug='foo')

MyModel.objects.get_or_create(slug='bar', defaults={'name':'bar'})

DBへのヒットを避けるため。

これらのメソッドにメモ化を適用することは良い解決策になると思いますが、これを実装する正しい方法が見つかりません。

手伝って頂けますか、

前もって感謝します

4

1 に答える 1

0

これらのメソッドはオブジェクトを返すので、すぐにキャッシュできます。

from django.core.cache import cache

a = cache.get('a')
if not a:
    a = MyModel.objects.get(slug='foo')
    cache.set('a', a)

b = cache.get('b')
if not b:
    b, exists = MyModel.objects.get_or_create(slug='bar', defaults={'name':'bar'})
    cache.set('b', b)

あなたの質問を誤解しないでください。

于 2012-07-04T01:55:08.670 に答える