Zum Inhalt springen
Menü
Sie müssen registriert sein, um mit der Community zu interagieren.
Diese Frage wurde gekennzeichnet
1 Antworten
5254 Ansichten

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
Verwerfen
Autor Beste Antwort
  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
Verwerfen
Verknüpfte Beiträge Antworten Ansichten Aktivität
1
Sept. 18
2795
0
Apr. 15
4589
2
Juni 23
2216
1
Feb. 21
4779
1
Juni 20
35261