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

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?

Avatar
Verwerfen
Autor Beste Antwort

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
Avatar
Verwerfen
Verknüpfte Beiträge Antworten Ansichten Aktivität
1
Jan. 19
11420
1
Okt. 17
3290
0
März 15
3864
0
Apr. 24
1905
1
Jan. 22
3733