我有兩個類似的類,一個是業務對象,另一個是Django模型。這是代碼:如何將業務對象保存到Django模型中
class Vehicle():
def __init__(self, make, model, year, miles, sold_on, sale_price, purchase_price):
self.make = make
self.model = model
self.year = year
self.miles = miles
self.sold_on = sold_on
self.sale_price = sale_price
self.purchase_price = purchase_price
def __str__(self):
return 'Vehicle: %s %s %s %s' % (self.make, self.model, self.year, self.miles)
def calculate_sale_price(self):
if self.miles > 0 and self.miles <= 20000:
return 15500
elif self.miles > 20000 and self.miles <= 50000:
return 11200
elif self.miles > 50000 and self.miles <= 100000:
return 8550
elif self.miles > 100000 and self.miles <= 200000:
return 4645
else:
return 2300
def is_vehicle_luxury(self):
if self.make in ['Cadilac', 'Lexus', 'BMW']:
return True
if self.year in [2000, 2015, 1945, 1973]:
return True
models.py
class Vehicle(models.Model):
make = models.CharField(max_length=300)
model = models.CharField(max_length=300)
year = models.IntegerField()
miles = models.IntegerField()
sold_on = models.DateTimeField(null=True, blank=True)
sale_price = models.FloatField(null=True, blank=True)
purchase_price = models.FloatField(null=True, blank=True)
所以,問題是:應該這兩個類合併成一個?或創建另一段代碼來創建業務對象,然後從業務對象填充模型。那麼處理這個問題最好的辦法是什麼?
只是爲了澄清,問題不在於如何新記錄保存到Django的模型。我已經知道如何做到這一點,問題更多的是如何避免編碼中的冗餘。 –
這取決於你想要什麼真的。一般來說,如果你有一個重複,這不是一個好主意,特別是你有兩個類幾乎完全相同。 – Tanorix
這是一個非常有趣的問題。無視票! –