मैं कुछ मॉडलों के साथ काम कर रहा हूं जिन्हें मॉडल फ़ील्ड का योग वापस करना है। क्या मॉडल पर सेव विधि को ओवरराइड करना बेहतर है या सिर्फ एक कस्टम विधि बनाएं जो योग देता है। क्या समाधान में से कोई प्रदर्शन समस्या है?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