How to cache a model method in django?
I suppose that you can use cached_property_with_ttl
from https://pypi.python.org/pypi/cached-property/1.2.0
from cached_property import cached_property_with_ttl
class Article(models.Model):
title = models.CharField(max_length=300, blank=False)
body = models.TextField(max_length=10000, blank=False)
created = models.DateTimeField(auto_now_add=True)
@cached_property_with_ttl(ttl=5)
def last_post(self):
if self.post_set.count():
return self.post_set.order_by("-created")[0]
Hope this will work for you.