Как мне рефакторить мои модели закупок и продаж по методу DRY
Я делаю приложение для медицинского биллинга на фреймворке Django, но мои модели нуждаются в рефакторинге, чтобы они могли работать по принципу DRY (Don't Repeat Yourself). Пожалуйста, помогите мне с этим! Вот файлы:
models.py(Medicines Model)
#------------------------Medicine models----------------------------------
gst = (
(0, '0%'),
(5, '5%'),
(12, '12%'),
(18, '18%'),
)
# Create your models here.
class Medicines(models.Model):
Med_HSN = models.IntegerField(default=0)
Med_name = models.CharField(max_length=20)
Med_Quantity = models.PositiveIntegerField(default=0)
Med_Manufacturer = models.CharField(blank=True,max_length=50)
Med_Expiry = models.CharField(default=1,max_length=10)
Med_Batch_no = models.CharField(blank=True,max_length=15)
Med_MRP = models.FloatField(blank=False)
Med_Rate = models.FloatField(blank=False)
Med_GST = models.IntegerField(default=0,choices=gst)
date_created = models.DateField(default=timezone.now)
def caluclate_value(self):
value = self.Med_MRP * (self.Med_GST/100)
total_value = self.Med_MRP + value
return total_value
def get_cost(self):
return self.caluclate_value() * self.Med_Quantity
def __str__(self):
return self.Med_name + " | " + str(self.caluclate_value()) + " || Quantity in Stock : " + str(self.Med_Quantity)
#----------------------------------End Medicines Models--------------------------------------
models.py(Sales Model)
models.py(Purchase Model)
Увидев модели, вы теперь поняли, почему мне нужен рефакторинг, поэтому, пожалуйста, помогите.