Pular para o conteúdo
Menu
Esta pergunta foi sinalizada
1 Responder
1353 Visualizações

I get an error for forbidden opcode (s) when I run:



class TestComputed(models.Model):
  _name = "test.computed"
  x_quarter = fields.Char(string='Quarter', compute='_get_appraisal_quarter')
  @api.depends('create_date')
  def _get_appraisal_quarter(self):
    for row in self:
      createdate = datetime.strptime(row.create_date,'%d-%m-%Y')
      month = createdate.strftime('%m')
      year = createdate.strftime('%Y')
      if 0         row.x_quarter = 'Q1 ' + str(year)
      elif 4         row.x_quarter = 'Q2 ' + str(year)
      elif 7         row.x_quarter = 'Q3 ' + str(year)
      elif 10         row.x_quarter = 'Q4 ' + str(year)
      else:
        row.x_quarter = 'NA'
Avatar
Cancelar
Melhor resposta

Hi,

Please try using below code

class TestComputed(models.Model):

  _name = "test.computed"


    date_field = fields.Date(string='Date')

    quarter_date = fields.Char(string='Quarter and Year', compute='_compute_quarter')


    @api.depends('date_field')

    def _compute_quarter(self):

        for row in self:

            date = row.date_field

            if date:

                year = date.year

                month = date.month

                if month in (1, 2, 3):

                    row.quarter_date = 'Q1 ' + str(year)

                elif month in (4, 5, 6):

                    row.quarter_date = 'Q2 ' + str(year)

                elif month in (7, 8, 9):

                    row.quarter_date = 'Q3 ' + str(year)

                elif month in (10, 11, 12):

                    row.quarter_date = 'Q4 ' + str(year)

                else:

                    row.quarter_date = 'NA'

            else:

                row.quarter_date = 'NA'


Hope it helps

Avatar
Cancelar
Publicações relacionadas Respostas Visualizações Atividade
1
dez. 19
6204
0
set. 17
3795
3
set. 24
1392
0
dez. 23
1339
1
jan. 23
2057