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

Hallo

I'm overriding the Create and Write methods for Project.Task model, using following code on Odoo v8.0-20150224:

from openerp import models, fields
import logging

_logger = logging.getLogger(__name__)

class project_task(models.Model):

    _inherit = "project.task"

    has_event = fields.Boolean('Has associated event')

    def create(self, cr, uid, values, context=None):
        if context is None:
            context = {}
        _logger.log(logging.INFO, ' ****** CREATE CALLED AT ' + datetime.datetime.now().strftime("%H:%M:%S.%f"))
        res = super(project_task, self).create(cr, uid, values, context)
        return res

    def write(self, cr, uid, ids, values, context=None):
        if context is None:
            context = {}
        _logger.log(logging.INFO, '##### WRITE CALLED AT ' + datetime.datetime.now().strftime("%H:%M:%S.%f"))
        res = super(project_task, self).write(cr, uid, ids, values, context)

The log shows that:

  • upon creation, Write is called twice or more UPDATE: at least one time, write is called without any editing but "message_last_post" field only
  • upon editing, Write is called once
  • Create is never called

Is this a normal behaviour?

Avatar
Cancelar
Autor Melhor resposta
  1. the task creation involves some nested updates ("message_last_post", "date_deadline" computation)
  2. in order to solve my issue I set a context entry in Create, and in Write I check that entry: if present, do not proceed with override actions.

 

Avatar
Cancelar
Publicações relacionadas Respostas Visualizações Atividade
1
set. 18
2827
0
abr. 15
4621
2
jun. 23
2236
1
fev. 21
4802
1
jun. 20
35285