Domanda

Vorrei trovare un modo generico per impedire il salvataggio di un oggetto se viene salvato dopo averlo estratto.

Possiamo supporre che l'oggetto abbia un campo timestamp che contiene l'ora dell'ultima modifica. Se avessi verificato (visitato una vista utilizzando un ModelForm per esempio) in t1 e l'oggetto fosse nuovamente salvato in t2 , dato t2 > ; t1 Non dovrei essere in grado di salvarlo.

È stato utile?

Soluzione

Sovrascrivi il metodo di salvataggio che controlla prima l'ultimo 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()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top