【问题标题】:How to know where database has changed如何知道数据库在哪里发生了变化
【发布时间】:2015-05-07 16:26:56
【问题描述】:

我有一个项目,看起来像一个销售不同种类产品的简单购物网站。例如,我有 4 个模型:BrandProductConsignmentConsignment 链接到 ProductProduct 链接到 Brand。为了减少对数据库的查询次数,我想保存这些模型(或至少其中一些)的当前状态。我想这样做,因为我展示了一个带有品牌和产品的侧边栏。所以每次用户打开某个页面时,它都会对数据库执行查询以获取这些品牌和产品。 但是当admin 添加一些新产品或品牌时,我想处理数据库更改并重新保存它。如何实现?

【问题讨论】:

  • 请详细说明,您可以使用 post_save 和 pre_save 信号,每次更改时它们都会触发

标签: django django-database


【解决方案1】:

您的答案是使用缓存。缓存是一种将对象临时存储在内存/其他应用程序(如 redis)中的方法,这样您就不需要向数据库发送查询。你可以阅读完整的描述here

或者,您可以使用third party library that helps you to cache Django ORM Model. 这是示例。

Brand.objects.filter(name='stackoverlow').cache()

对模型进行更新后,您需要clearinvalidate 缓存。

invalidate_model(Brand)

【讨论】:

    猜你喜欢
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多