何时完全重置cached_property?

时间:2019-02-13 23:16:50

标签: python django caching

当前,我正在使用@cached_property来避免对db的重复访问。

class MyModel(models.Model):
    ...

    @cached_property
    def my_opts(self):
        options = Option.objects.filter(...)
        return options
    ...

我使用了此属性的前端模板。

在外壳和测试中工作正常。但是,当我在浏览器中进行测试时,我不知道何时重置缓存属性。

每当刷新浏览器时,该属性就会重置。那么在这种情况下使用缓存的属性是否有用?而究竟cached_property值在客户端方面何时被重置?

谢谢!

1 个答案:

答案 0 :(得分:2)

documentation很清楚:

  

只要实例继续执行,缓存的结果将一直存在,因此,如果实例被传递并且随后调用了该函数,则将返回缓存的结果。

每当刷新浏览器时,都会重新创建实例,从而使缓存无效。如果您希望缓存可以保留多个请求,则应考虑使用cache framework