Python Django-QuerySet校验和

Python Django-QuerySet校验和,python,django,django-queryset,checksum,Python,Django,Django Queryset,Checksum,我有一个像这样的问题 ses = Session.objects.all() 我希望从中获取校验和(以检查是否有更改)。 所谓更改,我指的是创建/删除/更新的行 我想象: from django.core import serializers new_chksum = serializers.serialize("json", ses).__hash__() 这是了解查询集中是否有更改的好方法吗?因此,如果您只想知道某个特定表中的任何行是否被触摸过,这个问题可能非常复杂(例如:从上次检查时起

我有一个像这样的问题

ses = Session.objects.all()
我希望从中获取校验和(以检查是否有更改)。
所谓更改,我指的是创建/删除/更新的行

我想象:

from django.core import serializers
new_chksum = serializers.serialize("json", ses).__hash__()

这是了解查询集中是否有更改的好方法吗?

因此,如果您只想知道某个特定表中的任何行是否被触摸过,这个问题可能非常复杂(例如:从上次检查时起,是否有任何会话发生了更改)。例如,您可以将某个版本id存储在另一个表中,该值将在会话模型的实例每次更改时递增


要执行增量,可能需要使用数据库触发器和序列

看看这个问题:OP询问的是行方式检查。我正在寻找一个完整的查询集检查(可能是创建/删除/更改的行),如果您使用一个dirty_位字段,您可以通过过滤它来轻松查看查询集是否已更改:QS.objects.filter(dirty_位=True)。它不仅会告诉您QS是否更改,还会告诉您哪些行已更改。它不会告诉我是否有删除的行,并且创建的行不会变脏,不是吗?我最初的想法是提供一个日历,用于轮询(使用ajax)更改并更新自身(如果有)。因此,我想我可以给客户端一个哈希值,以便在轮询时对每个新版本的计划进行比较。这可能会破坏数据库。因为对于每个轮询,您将执行接受所有日历事件的查询,将其序列化,然后对其进行散列。根据结果集的大小,开销可能太大。