Como evitar sobrescrever um object que alguém modificou

Eu gostaria de encontrar uma maneira genérica de evitar salvar um object se ele for salvo depois que eu verifiquei.

Podemos supor que o object tenha um campo de timestamp e timestamp que contenha a timestamp última modificação. Se eu tivesse feito check-out (visitei uma view usando um ModelForm por exemplo) em t1 e o object é salvo novamente em t2 , dado t2 > t1 eu não deveria ser capaz de salvá-lo.

Sobrescreva o método save que primeiro verificaria o último registro de data e hora:

 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() 
    Intereting Posts