从另一个类访问对象

时间:2015-01-28 14:51:52

标签: python openerp

我想知道我在这里做错了什么。我正在尝试访问另一个对象中的对象。

因此,对于res.partner,我创建了一个自定义模块,它提供了一个名为xx_manager的额外字段。

现在在sale.order我想检查字段是否为空,所以我想我只需要这样做:

    def action_button_confirm(self, cr, uid, ids, context=None):
    partner = self.pool.get('res.partner')
    if not partner.xx_manager:
        raise osv.except_osv(_('Warning!'), _('No account manager has been set'))
    return super(sale_order, self).create(cr, uid, ids, context=context)

我做错了什么?

提前致谢

编辑:

我得到的错误:

AttributeError: 'res.partner' object has no attribute 'xx_manager'

我的res.partner自定义模块:

class res_partner(osv.osv):
_inherit="res.partner"

_columns = {
    'xx_manager': fields.many2one('res.users', string='Account Manager'),
}

1 个答案:

答案 0 :(得分:1)

是的,因为你忘了浏览当前的记录。因此,浏览当前记录并从中获取合作伙伴ID,然后根据需要检查合作伙伴条件。

尝试使用此代码

def action_button_confirm(self, cr, uid, ids, context=None):
    partner = self.browse(cr, uid, ids[0], context=context)
    if partner.partner_id and not partner.partner_id.xx_manager:
        raise osv.except_osv(_('Warning!'), _('No account manager has been set'))
    return super(sale_order, self).action_button_confirm(cr, uid, ids, context=context)