odoo 9にカスタムモジュールがあります。このモデルでは、私は動物とケージを持っています。odoo 9のモジュールをアンインストールした後にデータベーステーブルが削除されない
ケージでは、複数の動物を用いることができる。 動物は1つのケージにしか入れることができません。
私のモデルである:私はモジュールをインストールすると
class Animal(osv.osv):
_name = 'Animal'
_columns = {
'name': fields.char('Animal Name', size=2048),
'cage_id': fields.many2one('cage', required=True, ondelete='cascade', string="Cage"),
}
class Cage(osv.osv):
_name = 'Cage'
_columns = {
'name': fields.char('Cage Name', size=100),
'animals': fields.one2many('Animal', 'cage_id', string="Animals"),
}
、すべてが正常に動作します。しかし、私はそれをアンインストールしようとすると、テーブル「アニマル」はデータベース内に残り、コンソールにエラーがある:
2016-10-31 16:37:21,091 28082 INFO myserver openerp.addons.base.ir.ir_model: Unable to delete [email protected]
Traceback (most recent call last):
File "/etc/odoo/server/openerp/addons/base/ir/ir_model.py", line 1269, in unlink_if_refcount
self.pool[model].unlink(cr, uid, [res_id], context=context)
File "/etc/odoo/server/openerp/api.py", line 250, in wrapper
return old_api(self, *args, **kwargs)
File "/etc/odoo/server/openerp/addons/base/ir/ir_model.py", line 461, in unlink
self.browse(cr, user, ids, context=context)._prepare_update()
File "/etc/odoo/server/openerp/api.py", line 248, in wrapper
return new_api(self, *args, **kwargs)
File "/etc/odoo/server/openerp/addons/base/ir/ir_model.py", line 449, in _prepare_update
raise UserError(msg % (field, model._field_inverses[field][0]))
UserError: (u"The field 'animal.cage_id' cannot be removed because the field 'cage.passwords' depends on it.", None)
私は、公式ドキュメントをレビューしてきたが、私は、エラーを見つけることができませんしています。
モデルで何が問題になっていますか?
ondelete = 'cascade'ディレクティブがあります。とにかく、コードを新しいAPI(osv.osvではなくmodels.Model)に移行してから、表の列は作成されません。何故ですか? – MouTio