1
我有一个名为LeaseTerm。我想模式不具有根据具体租赁是IS_ACTIVE而不是is_terminated如何在编辑时在django模型中调用clean方法?
class LeaseTerm(CommonInfo):
version = IntegerVersionField()
start_period = models.ForeignKey(Period, related_name='start_period')
end_period = models.ForeignKey(Period, related_name='end_period')
lease = models.ForeignKey(Lease)
increase = models.DecimalField(max_digits=7, decimal_places=2)
amount = models.DecimalField(max_digits=7, decimal_places=2)
is_terminated = models.BooleanField(default=False)
def clean(self):
model = self.__class__
if self.lease_id and (self.is_terminated == False) and model.objects.filter(lease=self.lease, is_active=True).count() == 1:
raise ValidationError('!Lease has a active condition already, Terminate prior to creation of new one'.format(self.lease))
为此,我写了一个干净的方法,当我创建一个新的租赁完美的作品超过1个leaseTerm术语。但是,当我做Edit时,这个方法是一个问题,因为它自身计数并且不允许保存。
任何建议我该如何克服这个问题?编辑时我只想跳过干净的方法。