Skip to Content
Menú
This question has been flagged
1 Respondre
1294 Vistes

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
Descartar
Best Answer

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
Descartar
Related Posts Respostes Vistes Activitat
1
de des. 19
6159
0
de set. 17
3768
3
de set. 24
1317
0
de des. 23
1273
1
de gen. 23
2017