我想向用户显示我所有数据库对象的最后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
我如何构建此查询?我能想到的最直接的方法是查询用户从reversion表或summary表中过滤的不同/唯一对象列表,然后查询用户和对象的reversion以获取更详细的历史记录。这似乎更有效率。
我是否可以按用户创建另一个汇总表来跟踪更改以便以此格式查询?我该如何构建这种类型的表?
一些代码。我用它来获取给定对象的所有历史列表。它为我提供了数据库对象的版本列表,有关编辑内容的注释,编辑日期以及进行更改的用户:
version_list = Version.objects.get_for_object(object).select_related("revision__user")
我只是用它来获得一个简单的编辑列表。在此摘要表中,最近10个条目是最近的更改(对象,有关更改内容的详细信息,日期和用户):
whats_new_items = WhatsNew.objects.all()[0:10]