#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. извините. Я иногда туплю изо дня в день :))))