Odoo V10 - получить значение, когда store = False - PullRequest
0 голосов
/ 28 сентября 2018

Вот код Python:

@api.multi
def convert_bin_dec(self):
    for record in self:
        print "Je suis dans la fonction convert"
        # on récupère les valeur booleenne pour chaque enregistrement
        value_monday = record.half_pension_monday
        value_tuesday = record.half_pension_tuesday
        value_thursday = record.half_pension_thursday
        value_friday = record.half_pension_friday
        # On assigne une valeur si c'est True ou False à chaque jours
        if value_monday:
            monday_decimal = 1
        else:
            monday_decimal = 0

        if value_tuesday:
            tuesday_decimal = 2
        else:
            tuesday_decimal = 0

        if value_thursday:
            thursday_decimal = 8
        else:
            thursday_decimal = 0

        if value_friday:
            friday_decimal = 16
        else:
            friday_decimal = 0
        # On fait le total
        total_decimal = monday_decimal + tuesday_decimal + thursday_decimal + friday_decimal

...

Вот поля в одном классе:

half_pension_monday = fields.Boolean(string='Monday', copy=False, store=False)
half_pension_tuesday = fields.Boolean(string='Tuesday', copy=False, store=False)
half_pension_wednesday = fields.Boolean(string='Wednesday', copy=False, readonly="1", store=False)
half_pension_thursday = fields.Boolean(string='Thursday', copy=False, store=False)
half_pension_friday = fields.Boolean(string='Friday', copy=False, store=False)

На мой взгляд, хотяЯ проверяю некоторые дни недели, моя переменная "total_decimal" дает значение ноль, зная, что мои поля имеют опцию store = False.

Я хотел бы знать, возможно ли обойти эту проблемукроме сохранения полей в базе данных (store = True)?

Моя цель - не записывать дни недели в базе данных.

Заранее спасибо!

РЕДАКТИРОВАТЬ: Новая функция:

# Fonction qui permet de convertir en binaire
    @api.onchange('half_pension')
    @api.multi
    def convert_bin_dec(self):
        # for record in self:
        for record in self:
            if record.half_pension:
                print "Je suis dans la fonction convert"
                # on récupère les valeur booleenne pour chaque enregistrement
                value_monday = record.half_pension_monday
                value_tuesday = record.half_pension_tuesday
                value_thursday = record.half_pension_thursday
                value_friday = record.half_pension_friday
                # On assigne une valeur si c'est True ou False à chaque jours
                if value_monday:
                    monday_decimal = 1
                else:
                    monday_decimal = 0

                if value_tuesday:
                    tuesday_decimal = 2
                else:
                    tuesday_decimal = 0

                if value_thursday:
                    thursday_decimal = 8
                else:
                    thursday_decimal = 0

                if value_friday:
                    friday_decimal = 16
                else:
                    friday_decimal = 0
                # On fait le total
                total_decimal = monday_decimal + tuesday_decimal + 
                                thursday_decimal + friday_decimal
                # record.half_pension_days_value = total_decimal
                # self.half_pension_days_value = total_decimal
                print total_decimal

half_pension_days_value это поля с store = True

1 Ответ

0 голосов
/ 01 октября 2018

Я хотел бы знать, возможно ли обойти эту проблему, сохранив поля в базе данных (store = True)?

Краткий ответ: нет.

Назначение несохраненных полей - для вычисляемых полей, значение которых зависит от контекста.Если их значение не зависит от контекста, даже для тех, кто должен их хранить, по соображениям производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...