在我的代码中,我需要缓存一些查找,例如:
MyModel.objects.get(slug='foo')
MyModel.objects.get_or_create(slug='bar', defaults={'name':'bar'})
以避免点击数据库。
我猜测对这些方法应用memoization可能是一个很好的解决方案,但我找不到正确的方法来实现它,
你能帮助我吗,提前致谢
答案 0 :(得分: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)
希望我不会误解你的问题。