如果一个字段与False相关,如何在计算字段上循环以使其更改为计算方法?

时间:2019-02-09 12:40:11

标签: python-3.x odoo odoo-11

我创建一个计算字段char,该字段从字段中获取值作为字符串,但空字段获取False作为字符串,我需要在任何等于False的字段中将其从计算中忽略吗?

我尝试创建一个model_field作为示例,如果为false则执行另一种计算方法

  @api.one
  @api.depends('car','model','dsc','drc','year','org')
    def _compute_amount(self):
    for self in self:
        if self.model.name:
            self.model= False
            self.name = str(str(self.car.name) + " " + str(self.dsc.name) + " " + str(self.drc.name) + " " + str(self.year.name)+" " +str(self.org.name))
        else:
            model=self.model
            name = str(str(self.car.name) + " " + str(self.model.name) + " " + str(self.dsc.name) + " " + str(self.drc.name) + " " +str(self.org.name)+ " " +str(self.year.name))

当model_field为false时,所有字段均为false的代码值

1 个答案:

答案 0 :(得分:0)

您的代码与您要获得价值所要做的工作还差得很远,在跳入框架中的代码之前,请尝试学习Python基础知识(例如循环和条件处理)。同时,检查以下代码,应达到目的

@api.multi
@api.depends('car','model','dsc','drc','year','org')
def _compute_amount(self):
  name_fields = ('car','model','dsc','drc','year','org')
  for record in self:
    computed_name = ""
    for field in name_fields:
      field_value = getattr(record, field)
      if field_value:
        computed_name += field_value.name
    record.name = computed_name