我想向用户展示我所有数据库对象的最后 10 次更改。
我正在使用 django-reversion 来跟踪我的模型对象的更改历史。我在摘要视图中也有些重复这一点。reversion 按对象创建历史列表,摘要视图仅跟踪单个列表,每次更改按时间顺序排列。使用此摘要列表进行查询是否更有效,或者我可以/应该简单地查询所有恢复表以获取所有对象的最近 10 次编辑?
第二部分:我想向用户展示他们按对象分组的编辑
因此,假设用户编辑了 3 个对象,每个对象 10 次。用户在不同的日子编辑了每个对象,所以在第 1 天,用户编辑了所有 3 个,在第 2 天,用户编辑了其中的 1 个,等等。我想向用户展示一个表格,内容如下
Object Date of your most recent edit Date of last edit
Object 1 12-24-11 12-25-11
Object 2 12-20-11 12-23-11
其中第二列是最近的用户特定编辑,第三列是任何用户最近的编辑。
我希望用户能够选择对象 1,然后查看他们对该对象的所有编辑:
Object Date of your most recent edit Date of last edit
Object 1 12-24-11 12-25-11
edited name 12-24-11
edited type 12-19-11
edited subject 12-18-11
edited date 12-18-11
edited type 12-16-11
Object 2 12-20-11 12-23-11
我该如何构造这个查询?我能想到的最直接的方法是从还原表或汇总表中查询用户过滤的不同/唯一对象列表,然后按用户和对象查询还原以获得更详细的历史记录。这似乎可以更有效。
我是否想按用户创建另一个汇总表来跟踪更改以便以这种格式进行查询?我将如何构建这种类型的表?
一些代码。我用它来获取给定对象的所有历史列表。它为我提供了数据库对象的版本列表、关于编辑内容的注释、编辑日期以及进行更改的用户:
version_list = Version.objects.get_for_object(object).select_related("revision__user")
我只是用它来获得一个简单的编辑列表。在此汇总表中,最后 10 个条目是最近的更改(对象、更改内容的详细信息、日期和用户):
whats_new_items = WhatsNew.objects.all()[0:10]