我正在使用一些模型,它必須返回一個模型字段的總和。重寫模型上的save方法還是創建一個返回總和的自定義方法會更好一些。任何解決方案是否存在性能問題?Django模型,覆蓋保存方法或屬性的自定義方法
選項1:覆蓋保存方法。
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:自定義方法
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