객체를 덮어 쓰는 방지 방법 다른 사람이 수정되었습니다.
-
19-08-2019 - |
문제
체크 아웃 한 후 저장되면 물체를 저장하는 것을 방지하는 일반적인 방법을 찾고 싶습니다.
우리는 객체에 a가 있다고 가정 할 수 있습니다 timestamp
마지막 수정 시간을 포함하는 필드. 내가 체크 아웃 한 경우 (예 : modelform을 사용하여보기를 방문) t1
그리고 물체는 다시 저장됩니다 t2
, 주어진 t2
> t1
나는 그것을 저장할 수 없어야합니다.
해결책
먼저 마지막 타임 스탬프를 확인하는 저장 메소드를 덮어 씁니다.
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()
제휴하지 않습니다 StackOverflow