我正试图在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 FilesERPserver.openerpsql_db.py", line 158, in wrapper
File "d:Program FilesERPserver.openerpsql_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}
任何线索都可能有所帮助,提前谢谢。
天哪!我从来没有想过这会是一个多么愚蠢的问题。由于我使用notepad++,我添加的定义行在前面使用了5个空格,其他的都是4个空格,尽管添加额外的空格不一定是犯罪行为,但在编译过程中会引起错误。
多亏了odoo.py,它提到了缩进错误,而我正试图构建另一个模块。经验教训,当涉及到代码时,即使是最小的东西也会给你带来很大的bug问题。
此行:
ProgrammingError: column res_partner_bank.bank_ifsc does not exist
指向您的错误-在将该列添加到代码中后,您是否更新了模块?似乎数据库并没有更新,列并没有添加到相关的表中,这导致Odoo崩溃。
我也有同样的错误。我所做的是,在数据库中手动添加新字段,重新启动服务器,然后它就工作了。