Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
1 ตอบกลับ
10741 มุมมอง

How could I call my method just after creation of record was made. So far:

def _compute_stage_deadline(self, cr, uid, ids, context=None):
    for lead in self.browse(cr, uid, ids):

        stage_deadline = datetime.now() + lead.stage_id.days_for_stage
        print "Testing stage datetime: ", stage_deadline.strftime("%Y-%m-%d %H:%M:%S")
    return stage_deadline   

def create(self, cr, uid, ids, context=None):
    self._compute_stage_deadline(cr, uid, ids, context)
    return super(CRM_Lead, self).create(cr, uid, ids, context=context)

But there I call it just before creating record, so when in _compute_stage_deadline I try to access that record I get this error (because that record does not exist yet):

AttributeError: 'NoneType' object has no attribute 'stage_id'

How could I bypass it and call my method just after creation?

อวตาร
ละทิ้ง
ผู้เขียน คำตอบที่ดีที่สุด

Solved this problem using this approach:

def _compute_stage_deadline(self, cr, uid, lead, context=None):        
    stage_deadline = datetime.now() + lead.stage_id.days_for_stage
    print "Testing stage datetime: ", stage_deadline.strftime("%Y-%m-%d %H:%M:%S")
    return stage_deadline   

def create(self, cr, uid, vals, context=None):
    new_id = super(CRM_Lead, self).create(cr, uid, vals, context=context)
    lead = self.browse(cr, uid, new_id, context=context)
    self._compute_stage_deadline(cr, uid, lead, context)
    return new_id
อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
1
ม.ค. 19
11561
1
ต.ค. 17
3462
0
มี.ค. 15
4017
0
เม.ย. 24
2091
1
ม.ค. 22
3896