如何在odoo v8的基础模块中的res.partner.bank中添加一个新字段?

时间:2015-03-18 17:19:12

标签: python openerp odoo openerp-8 odoo-8

我正在尝试在odoo中的res.partner.bank模型中添加一个新字段。这将由res.bank中的字段值(由onchange)填充。我在res.bank中添加了一个完美无缺的字段

    'bic': fields.char('Bank Identifier Code', size=64,
        help="Sometimes called BIC or Swift."),
    'ifsc': fields.char('IFSC', size=64),
}

现在我在res.partner.bank中添加了一个类似的字段

    'bank_bic': fields.char('Bank Identifier Code', size=16),
    'bank_name': fields.char('Bank Name'),
    'bank_ifsc': fields.char('Bank Ifsc'),
    'owner_name': fields.char('Account Owner Name'),
    'street': fields.char('Street'),

现在当我打开相应的菜单时,我得到一个OpenERP服务器错误:

File "d:\Program Files\ERP\server\.\openerp\sql_db.py", line 158, in wrapper
File "d:\Program Files\ERP\server\.\openerp\sql_db.py", line 234, in execute
ProgrammingError: column res_partner_bank.bank_ifsc does not exist
LINE 1: ...partner_bank."owner_name",res_partner_bank."city",res_partne...
                                                         ^

但是我也尝试更改导致内部服务器错误的onchange定义:

def onchange_bank_id(self, cr, uid, ids, bank_id, context=None):
    result = {}
    if bank_id:
        bank = self.pool.get('res.bank').browse(cr, uid, bank_id, context=context)
        result['bank_name'] = bank.name
        result['bank_bic'] = bank.bic
        result['bank_ifsc'] = bank.ifsc
    return {'value': result}

任何线索都可能有所帮助,在此先感谢。

3 个答案:

答案 0 :(得分:1)

OMG!我从来没有想过它会是一个多么愚蠢的问题。因为我使用的是notepad ++,我添加的定义行在前面使用了5个空格而其他的是4个空格虽然添加额外的空间并不一定是犯罪但是在编译期间它会引发错误。

感谢odoo.py它提到了缩进错误,而我正在尝试搭建另一个模块。 经验教训,在谈到代码时,即使是最小的事情也会给你一个大问题。

答案 1 :(得分:0)

这一行:

ProgrammingError: column res_partner_bank.bank_ifsc does not exist

指向您的错误 - 您是否在将代码添加到代码后更新了模块?好像数据库没有更新,列未添加到相关表中,导致Odoo崩溃。

答案 2 :(得分:0)

我有同样的错误。我做的是,在数据库中手动添加新字段,重新启动服务器然后它工作。