【发布时间】:2016-06-17 21:54:57
【问题描述】:
我有一个同时具有发布和愿望清单模型的应用程序。用户创建发布和愿望清单对象,并假设当他们删除这些对象时,这意味着他们成功购买或出售了任何物品。
我想连续统计每个模型删除的对象数量,不知道怎么做?
这样我可以跟踪客户的成功程度。
任何建议将不胜感激。
【问题讨论】:
标签: python django django-models
我有一个同时具有发布和愿望清单模型的应用程序。用户创建发布和愿望清单对象,并假设当他们删除这些对象时,这意味着他们成功购买或出售了任何物品。
我想连续统计每个模型删除的对象数量,不知道怎么做?
这样我可以跟踪客户的成功程度。
任何建议将不胜感激。
【问题讨论】:
标签: python django django-models
你有很多方法可以做到这一点:
实施审计机制;使用任意数量的audit applications available。
从 django 1.9 开始,delete() 方法 returns the number of objects deleted。您可以将此值存储在单独的模型中并对其进行跟踪。
实际上并不删除,而是实施“软删除”,这是一种将记录标记为已删除但不会将其从表中删除的标志形式。然后,您可以添加一个附加字段来跟踪您想要为删除选项跟踪的任何元数据。实现这一点的最简单方法是在模型上覆盖 delete()。
【讨论】:
一种解决方案是永远不要硬删除任何对象,而是在模型中保留一个名为“is_deleted”的布尔值。这样,您可以统计已删除对象的数量,还可以统计已删除对象的特定元素。您可能想要覆盖delete() 功能,请参阅this SO question 了解如何执行此操作:
当然,缺点是您必须存储元素。此外,有时删除应该级联。例如,您可以使用 django-safedelete 或 django-softdelete 之类的库
【讨论】: