Odoo V10-当store = False时获取一个值

时间:2018-09-28 13:19:52

标签: python odoo

这是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)

在我看来,尽管我检查一周中的某些天,但知道我的字段具有store = False选项,变量“ total_decimal”的值为零。

我想知道是否有可能解决此问题,而无需将字段保存在数据库中(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 :(得分:0)

  

我想知道是否有可能解决此问题,而无需将字段保存在数据库中(store = True)?

最简单的答案是:不。

不存储字段的目的是针对其值取决于上下文的计算字段。如果它们的值不取决于上下文,那么出于性能原因,即使对于那些值,您也应该存储它们。