모델 필드의 합계를 반환해야하는 일부 모델을 사용하고 있습니다. 모델의 save 메서드를 재정의하거나 합계를 반환하는 사용자 지정 메서드를 만드는 것이 더 좋습니다. 두 가지 솔루션 중 성능 문제가 있습니까?Django 모델, 저장 메서드 또는 사용자 지정 메서드 재정의를 통해
옵션 1 : save 메소드를 대체하십시오.
class SomeModel(models.Model):
integer1 = models.IntegerField()
integer2 = models.IntegerField()
integer3 = models.IntegerField()
sum_integers = models.IntegerField()
def save(self, *args, **kwargs):
self.sum_integers = sum(
[self.integer1, self.integer2, self.integer3])
self.sum_integers.save()
return super(SomeModel, self).save(*args, **kwargs)
옵션 2 : 사용자 정의 방법 대답은 당신이 sum_integers을 사용하려는 방법에 따라 달라집니다
class SomeModel(models.Model):
integer1 = models.IntegerField()
integer2 = models.IntegerField()
integer3 = models.IntegerField()
@property
def sum_integers(self):
return sum([self.integer1, self.integer2, self.integer3])
찬반 양론에 대해 감사드립니다. – Andreas