2015-09-28 2 views
1

У меня есть модельДжанго администратора заполнить поле при сохранении модели

class MyModel(models.Model): 
    title = models.CharField(max_length=100) 
    net_price = models.IntegerField(default=0) 
    sold_price = models.IntegerField(default=0) 
    profit = models.IntegerField(default=0, blank=True, null=True) 

Вот в админ, когда я даю net_price и sold_price и сохранить его, я хочу, чтобы прибыль будет рассчитываться автоматически. Как я могу это сделать ?

ответ

0

Вы можете добавить в корзину модели .clean(), чтобы рассчитать стоимость profit, если не указано.

Выполнение этого параметра задает атрибут profit экземпляра, если это значение не было предоставлено администратором.

class MyModel(models.Model): 
    title = models.CharField(max_length=100) 
    net_price = models.IntegerField(default=0) 
    sold_price = models.IntegerField(default=0) 
    profit = models.IntegerField(default=0, blank=True, null=True) 

    def clean(self): 
     if getattr(self, 'profit', None) is None: # check that current instance has 'profit' attribute not set 
      self.profit = self.sold_price - self.net_price # calculate and assign 'profit' 
+0

чистый метод в модели? – aryan

+0

Да, мы можем создать метод 'clean()' в модели для обработки этого. –

Смежные вопросы