Como evitar a substituição de um objeto que alguém tenha modificado

votos
2

Eu gostaria de encontrar uma forma genérica de prevenção para salvar um objeto se ele é salvo depois que eu verifiquei.

Podemos assumir o objeto tem um timestampcampo que contém última modificação. Se eu tinha check-out (visitou uma vista usando um ModelForm por exemplo) em t1e o objeto é salvo novamente no t2, uma vez t2> t1eu não deveria ser capaz de salvá-lo.

Publicado 21/01/2009 em 22:38
fonte usuário
Em outras línguas...                            


1 respostas

votos
3

Substituir o método Save que primeiro verificar o último timestamp:

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()
Respondeu 21/01/2009 em 22:47
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more