0

我正在使用带有 mongodb 后端的 Django 非 rel 版本。我有兴趣跟踪模型实例上发生的更改,例如,如果有人创建/编辑或删除模型实例。后端数据库是 mongo,因此模型在各自的集合/数据库中具有关联的“_id”字段。

现在我想提取这个 modif 操作发生的“_id”字段。我们的想法是将此“_id”字段写入另一个数据库,以便有人可以从那里获取它并知道更新了什么对象。

我考虑过从Django “models.Model”覆盖save()方法,因为我所有的模型都是从它派生的。然而,mongo“_id”字段显然不存在,因为 mongo-insert 尚未发生。

是否有可能在保存操作发生在 mongo 之后调用伪post-save()方法?django/django-toolbox/pymongo 可以提供这样的组合吗?

4

1 回答 1

0

在深入研究了 Django 模型之后,我能够解决这个问题。save()方法又调用save_base()方法。此方法将返回的结果(在 mongo 的情况下为 ids)保存到self.id中。然后可以通过覆盖模型的save()方法来选择这个_id字段

于 2012-10-23T13:24:09.413 回答