Если значение вывода определенного поля будет отрицательным, так как я могу установить его равным 0 при просмотре XML-файла в Odoo?

#python #odoo

#python #odoo

Вопрос:

Я пытаюсь вычислить значение разницы между двумя полями в ORM. Если результирующее значение отрицательное, оно будет иметь значение 0, когда я показываю значение этого поля с помощью XML.

 excess_amount = fields.Float(string="Excess amount", compute='difference_excess_amount')
  
def difference_excess_amount(self):
    for rec in self:
        rec.excess_amount = rec.actual_total - rec.expected_total
 
 <field name="excess_amount"/>
 

Комментарии:

1. какую ошибку вы получаете?

Ответ №1:

Пожалуйста, попробуйте приведенный ниже код

 @api.depends('actual_total', 'expected_total')
def difference_excess_amount(self):
    for rec in self:
        excess_amount = rec.actual_total - rec.expected_total
        rec.excess_amount = 0 if excess_amount < 0 else excess_amount
 

Ответ №2:

 @api.depends('actual_total', 'expected_total')
def difference_excess_amount(self):
    for rec in self:
        rec.excess_amount = rec.actual_total - rec.expected_total
        if rec.excess_amount < 0:
            rec.excess_amount = 0

 

Это должно сработать.

Комментарии:

1. Этот код не работает для отрицательного значения. Он преобразует все типы значений в 0.

2. извините. Я иногда туплю изо дня в день :))))