OpenERP中的主键和外键概念

0 投票
2 回答
898 浏览
提问于 2025-04-18 03:55

我在Openerp中遇到了一个问题。 我想创建一个特定的主键,然后在另一个表中引用它。假设我在数据库中有两个表(表A和表B),我只想把表A中的几个字段放到表B里,而不是全部……我该怎么做呢? 如果我继承表A的类,表B中会出现所有相关字段,这样我就不想要了……提前谢谢大家。

2 个回答

1

你为什么“只想要父类中的几个字段”?拥有所有字段有什么问题吗?

其实有几种继承的方式,具体可以参考这份资料的第2页。

委托继承会让父类的字段可以用,但这些字段并不是真正被复制的。在数据库中,它只是为父类的表创建了一个外键。

1

主键是不能更改的。它总是叫做 id,并且是自动生成的。

如果你只想继承几个字段,最简单的方法是为表A和表B创建一个基础模型,这样可以共享共同的字段,像下面的例子一样:

class base(osv.osv):
    _name='base'
    _columns = dict_of_fields
base()

class A(osv.osv):
    _name='a'
    _inherit='base'
A()

class B(osv.osv):
    _name='b'
    _inherit='base'
B()

我觉得在osv.osv里面有一个内置机制可以做到这一点,但我所知道的模块里并没有使用它。

撰写回答