Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
5281 Lượt xem

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?

Ảnh đại diện
Huỷ bỏ
Tác giả Câu trả lời hay nhất
  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.

 

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 9 18
2826
0
thg 4 15
4619
2
thg 6 23
2236
1
thg 2 21
4800
1
thg 6 20
35285