Tôi đang làm việc với một số mô hình phải trả lại tổng số trường mô hình. Có tốt hơn để ghi đè lên phương thức lưu trên mô hình hay chỉ tạo một phương thức tùy chỉnh trả về tổng. Có bất kỳ vấn đề hiệu suất nào với một trong các giải pháp không?Mô hình Django, Ghi đè phương thức lưu hoặc phương thức tùy chỉnh với thuộc tính
Tùy chọn 1: Ghi đè phương thức lưu.
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)
Lựa chọn 2: Phương pháp chỉnh
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])
Cảm ơn, giải thích tốt về những ưu và khuyết điểm. – Andreas