2016-08-24 7 views
0

私のodooアプリケーションでは、私は2つのモデルを持っています。 1つのメインモデルと1つの子モデル。odooで削除された子モデルのレコード(メインモデルを継承して作成)が削除されたときのメインモデルのレコードの削除方法

メインモデル

class main_model(models.Model): 
    _name = 'main.model' 

は私の子供のモデルは、このコードを持つ

class child_model(models.Model): 
    _inherits = { 
    'main.model: 'main_ref' 
     } 
    _name = 'child.model' 

    main_ref = fields.Many2one('main.model') 

です。子モデルでレコードを作成すると、レコードもメインモデルで作成されます。しかし、私はメインモデルの対応するレコードの子モデルでレコードを削除するときにも削除する必要があります。私は行って何のためにこの

...

@api.multi 
def unlink(self): 
    self.main_ref.unlink() 
    return super(child_model, self).unlink()  

しかし、これは動作しません。 ..

The operation cannot be completed, probably due to the following:- deletion: you may be trying to delete a record while other records still reference it- creation/update: a mandatory field is not correctly set 

答えて

1

使用してフィールド定義でondelete = 'カスケード'を属性としては、エラーを示しています。

main_ref = fields.Many2one('main.model', ondelete='cascade') 

あなたの問題を解決することを願っています。

+0

ありがとうございます。注:(ondeleteとunlink mthodの両方で動作します) –

関連する問題