개체가 실제로 삭제되지 않고 삭제 된 것으로 표시된 테이블이 있다고합시다. 이제 특정 필드 값 집합과 함께 하나의 삭제되지 않은 개체 만있을 수 있다는 제약 조건을 적용하려고하지만 같은 필드 값을 가진 삭제 된 여러 개체를 가질 수 있습니다.조건부 고유성 제약을 적용하는 방법
class Deletable(models.Model):
deleted = models.BooleanField(default=False)
class Meta:
abstract=True
def soft_delete(self):
self.deleted=True
self.save()
class ConcreteModel(Deletable):
a = models.IntegerField()
b = models.IntegerField()
class Meta:
#wrong because there may have been some deleted rows
unique_together=('a', 'b')
제약 조건을 적용하는 가장 좋은 방법은 무엇입니까?
좋은 아이디어. 이 중 하나를 수행하거나 삭제 된 행에 대해 null을 사용합니다.이 행은 신경 쓰이는 모든 데이터베이스에서 고유 한 것으로 처리됩니다. 나는 아직 어느 것을 결정하지 않았다 :) – ykaganovich