Перейти к содержимому
Меню
Чтобы взаимодействовать с сообществом, необходимо зарегистрироваться.
Этот вопрос был отмечен
1 Ответить
5285 Представления

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?

Аватар
Отменить
Автор Лучший ответ
  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.

 

Аватар
Отменить
Related Posts Ответы Просмотры Активность
1
сент. 18
2827
0
апр. 15
4621
2
июн. 23
2236
1
февр. 21
4802
1
июн. 20
35285