2017-09-01 5 views
1

onchangeがトリガーされた後に新しいモデルを作成する方法はありますか?ODOOでカスタムオブジェクトを作成するには?

たとえば、見積もりの​​状態が販売注文に変更された後に、私はカスタムレポートオブジェクトを作成したいと考えています。私はではsale.orderの方法をaction_confirm上書きしようとすることを解決

report_model = self.env['my.custom.report.object'] 
    new_report_object = report_model.create({ 
     'report_message': 'Quotation changed state to Sales Order' 
    }) 
+2

「カスタムレポートオブジェクトを作成する」とはどういう意味ですか? –

+0

私は自分のモジュールで作成した「新しい」モデルを意味します。私は引用の状態のonchangeが引き起こされた後にそれを加えたいと思う。 – ReiiYuki

+0

あなたはこれまでに何を試しましたか?あなたの質問にあなたの努力を分かち合いますか? –

答えて

1

あなたはデコレータ@api.onchange('state')とメソッドの内部sales.orderの内側に次のコードとモデルの新しいインスタンスを作成することができますそれは働いている!

class sale_order(models.Model) : 
    _inherit = 'sale.order' 
    job_container = fields.One2many('job.container','order') 

    @api.multi 
    def action_confirm(self): 
      super(sale_order, self).action_confirm() 
      self.env['job.container'].create({ 
       'order': self.id 
      }) 
+0

私はそのようにしましたが、何も呼び出されませんでしたが、今私は解決策を得ました。 – ReiiYuki

+0

あなたは正しいです、私はテストするコードを実行しませんでした。状態がバックエンド/で変更され、ビュー内では変更されないため、onchange関数はトリガされません。私は他のユーザーをミスリードしないように私の答えを変えました。ありがとうございました! – IstaLibera

関連する問題