我正在开发一个简单的网络应用程序,存储一些非规范化数据很有意义。
想象一个跟踪评论的博客平台,BlogEntry 模型有一个“评论计数”字段,我想保持更新。
这样做的一种方法是使用 Django 信号。
这样做的另一种方法是直接在我的代码中放置 Hook ,以创建和删除 Comment 对象以同步调用 BlogEntry 上的某些方法来增加/减少评论计数。
我想还有其他 pythonic 方法可以使用装饰器或其他巫术来完成此任务。
在 Django 中进行非规范化的标准设计模式是什么?在实践中,是否还必须编写一致性检查器和数据修复器以防出错?
最佳答案
你在 Django 中有管理器。
使用自定义管理器来创建和维护 FK 关系。
经理可以在更新子集时更新计数。
如果您不想制作自定义管理器,只需扩展 save
方法即可。您想要对计数和求和进行非规范化的所有操作都可以在 save
中完成。
您不需要信号。只需扩展 save
。
关于python - 在 Django 中非规范化数据的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1100924/