我正在Openerp的一个模块上工作,我想从另一个模块继承一个课程,但我不需要在另一个课程中的每一个课程
这是我的班级:
class BookingManagement(orm.Model):
_name = 'booking.management'
_inherit = 'res.partner.address.contact'
_description = 'Booking management'
_columns = {
'guests': fields.integer('Number of guests', required=True),
'check_in': fields.date('From', required=True),
'check_out': fields.date('To', required=True),
'special_requests': fields.text('Special requests')
}
这是 res.partner.address.contact
class res_partner_address_contact(orm.Model):
_name = "res.partner.address.contact"
_description = "Address Contact"
def [...]
def [...]
_columns = {
'complete_name': fields.function(_name_get_full, string='Name', size=64, type="char", store=False, select=True),
'name': fields.char('Name', size=64, ),
'last_name': fields.char('Last Name', size=64, required=True),
'first_name': fields.char('First Name', size=64),
'mobile': fields.char('Mobile', size=64),
'fisso': fields.char('Phone', size=64),
'title': fields.many2one('res.partner.title', 'Title', domain=[('domain', '=', 'contact')]),
'website': fields.char('Website', size=120),
'address_id': fields.many2one('res.partner.address', 'Address'),
'partner_id': fields.related(
'address_id', 'partner_id', type='many2one', relation='res.partner', string='Main Employer'),
'lang_id': fields.many2one('res.lang', 'Language'),
'country_id': fields.many2one('res.country', 'Nationality'),
'birthdate': fields.char('Birthdate', size=64),
'active': fields.boolean('Active', help="If the active field is set to False,\
it will allow you to hide the partner contact without removing it."),
'email': fields.char('E-Mail', size=240),
'comment': fields.text('Notes', translate=True),
'photo': fields.binary('Photo'),
'function': fields.char("Function", size=64),
'function_id': fields.many2one('res.contact.function', 'Function'),
}
def [...]
让我们说我需要的唯一列是' last_name ',' first_name ', ' 电子邮件'和' 移动'
我该怎么做?
谢谢!
答案 0 :(得分:0)
在Odoo中,您可以使用两种继承。 第一个是通过设置(如你所做)
获得的_name = 'booking.management'
_inherit = 'res.partner.address.contact'
结果是两个表,原始的一个(res_partner_address_contact)没有改变,你的(booking_management)包含你声明的四个字段加上第一个表的ID(你需要声明这个字段)
第二个是通过声明
获得的_name = 'res.partner.address.contact'
_inherit = 'res.partner.address.contact'
结果是表res_partner_address_contact以及您声明的额外字段。
说,你只能获得一张只有你需要的四个字段的表格。这是一个全有或全无的情况。
答案 1 :(得分:0)
如果你需要继承'res.partner.address.contact'
并像你一样只使用last_name', 'first_name', 'email' and 'mobile'
继承并在xml视图中添加它们,因为在你写的时候你指定'res.partner.address.contact'
应该用在你的模型。
如果您想要contact
个信息,请使用One2many
链接多个联系人,或Many2one
链接一个联系人。