缓存 Django 视图,直到更新数据库中的 table

Cache Django view until table in database is updated

到目前为止我有简单的解决方案:

@cache_page(60 * 60 * 24)
def myview()

效果很好。令我困扰的是,如果数据库中的 table 发生变化(有人上传数据),那么应该重新评估缓存的视图。此外,由于我很少且不定期地进行数据库更新,因此我想 指定 60 * 60 * 24 (每天一次),但除非数据库 table更改(或者可能整个数据库更改)。

我该怎么办?我确定有简单的解决方案。

这就是它的工作原理。为了使缓存无效,您可以在保存特定模型实例时使用信号清除特定缓存条目。

https://docs.djangoproject.com/en/1.8/topics/signals/

关于设置无限缓存,使用None作为超时,它永远不会过期(Django 1.7+)。