Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
1 Відповісти
1397 Переглядів

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'
Аватар
Відмінити
Найкраща відповідь

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

Аватар
Відмінити
Related Posts Відповіді Переглядів Дія
1
груд. 19
6221
0
вер. 17
3854
3
вер. 24
1435
0
груд. 23
1361
1
січ. 23
2101