2

我想找到一种通用方法来防止在我签出对象后保存对象。

我们可以假设对象有一个timestamp包含上次修改时间的字段。如果我在 处签出(例如使用 ModelForm 访问了视图)t1并且对象再次保存在 处t2,假设t2>t1我应该无法保存它。

4

1 回答 1

3

覆盖将首先检查最后一个时间戳的保存方法:

def save(self):
    if(self.id):
        foo = Foo.objects.get(pk=self.id)
        if(foo.timestamp > self.timestamp):
            raise Exception, "trying to save outdated Foo" 
    super(Foo, self).save()
于 2009-01-21T21:47:10.977 回答