Как мне рефакторить мои модели закупок и продаж по методу 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)

Увидев модели, вы теперь поняли, почему мне нужен рефакторинг, поэтому, пожалуйста, помогите.

Вернуться на верх