Как сделать цикл для вычисляемого поля, чтобы изменить его вычисляемый метод, если одно поле связано с False? - PullRequest
0 голосов
/ 09 февраля 2019

я делаю вычисляемое поле char, которое получает значения как строки из полей, но пустое поле получает False как строку, мне нужно, когда любое поле, равное False, игнорирует его при вычислении?

я пытался создать поле model_field в качестве примераесли ложь, сделайте другой метод вычисления

  @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))

значение моего кода, что все поля будут ложными, когда поле модели_столь ложное

1 Ответ

0 голосов
/ 09 февраля 2019

Ваш код даже близко не соответствует тому, что вы должны сделать, чтобы получить свою ценность, попробуйте изучить основы 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
...