2017-09-14 70 views
0

我有兩個模型,我需要在survey.page模型中創建記錄survey.survey模型(在點擊保存按鈕時)。我試過的方法不起作用。任何建議我怎麼能做到這一點?調用其他模型的創建方法

class Survey(models.Model): 
_name = 'survey.survey' 
    @api.multi 
    def my_func(self): 
     last_id = self.env['survey.survey'].search([])[-1].id 
     vals = {'title': 'Page 1', 'survey_id': last_id} 
     other_object = self.env['survey.page'] 
     return other_object.create(vals) 


class SurveyPage(models.Model): 
    _name = 'survey.page' 

    title = fields.Char('Page Title', required=True, translate=True) 
    survey_id = fields.Many2one('survey.survey', string='Survey', ondelete='cascade', required=True) 

回答

2

可以使用survey.survey模型覆蓋create方法做到這一點。 嘗試吹打代碼:

class Survey(models.Model): 
    _name = 'survey.survey' 
    @api.multi 
    def my_func(self): 
     self.ensure_one() 
     vals = {'title': 'Page 1', 'survey_id': self.id} 
     other_object = self.env['survey.page'] 
     return other_object.create(vals) 

    @api.model 
    def create(self, vals): 
     res = super(Survey, self).create(vals) 
     res.my_func() 
     return res 

class SurveyPage(models.Model): 
    _name = 'survey.page' 

    title = fields.Char('Page Title', required=True, translate=True) 
    survey_id = fields.Many2one('survey.survey', string='Survey', ondelete='cascade', required=True) 
+0

我明白了。像冠軍一樣工作。謝謝 –