当前,我正在使用@cached_property
来避免对db的重复访问。
class MyModel(models.Model):
...
@cached_property
def my_opts(self):
options = Option.objects.filter(...)
return options
...
我使用了此属性的前端模板。
在外壳和测试中工作正常。但是,当我在浏览器中进行测试时,我不知道何时重置缓存属性。
每当刷新浏览器时,该属性就会重置。那么在这种情况下使用缓存的属性是否有用?而究竟cached_property
值在客户端方面何时被重置?
谢谢!
答案 0 :(得分:2)
documentation很清楚:
只要实例继续执行,缓存的结果将一直存在,因此,如果实例被传递并且随后调用了该函数,则将返回缓存的结果。
每当刷新浏览器时,都会重新创建实例,从而使缓存无效。如果您希望缓存可以保留多个请求,则应考虑使用cache framework。