2017-09-14 11 views
0

私は2つのモデルを持っています、私はsurvey.surveyモデルからのsurvey.pageモデルのレコードを作成する必要があります(保存ボタンを押すと)。私が試した方法は動作していません。どのように私はこれを達成することができますどのような提案?他のモデルのメソッドを呼び出す

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

わかりました。チャンピオンのように動作します。ありがとう –

関連する問題