OpenERP中的主键和外键概念
我在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里面有一个内置机制可以做到这一点,但我所知道的模块里并没有使用它。