Как вычислить несколько уровней в python Odoo

#python #odoo #division #depends

#python #odoo #разделение #зависит

Вопрос:

Что не так с моим кодом?

Запрошенный:

Если A и B равны 0, покажите мне результат = A

Если A и B не равны 0, продолжайте

Если идентификатор C равен 1, выполните уравнение

Иначе, если это другой идентификатор, покажите мне результат = A

В остальном просто покажите

Что у меня сейчас есть (не работает):

 @api.depends('A', 'B','C')
def _compute_X(self):
        for record in self:
            if int(record.A or record.B) != 0 and int(record.C) == 1:
                record.X = record.A / record.B
            else:
                record.X = record.A
  

Ответ №1:

Это зависит от типа A , B , C , и X . Я рассматриваю их как класс типа string.

 if int(record.A or record.B) != 0 and int(record.C) == 1:

        record.X = str(int(record.A) / int(record.B)) 
        # converting string to int while doing math operation and then converting the result to strting.
else:
    record.X = record.A    
  

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

1. Спасибо, работает отлично! Но добавлено в поле по умолчанию как 1, чтобы не получить ошибку разделения.