2015-03-18 1 views
0

Я пытаюсь добавить новое поле в res.partner.bank модели в odoo. который будет заполнен значением поля в res.bank (onchange). Я добавил поле в res.bank, который работает отличноКак добавить новое поле в res.partner.bank в базовом модуле odoo v8?

'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} 

любая подсказка может помочь, спасибо заранее.

+0

Необходимо перезагрузить сервер, когда вы внесли какие-либо изменения в файлы. –

+0

Конечно, я сделал, иначе ошибка или эффект не появятся. –

ответ

0

Эта линия:

ProgrammingError: column res_partner_bank.bank_ifsc does not exist 

указывает на вашей ошибки - вы обновить модуль после добавления этого столбца в код? Похоже, что база данных не обновлялась, столбец не добавлен в связанную таблицу, и это приводит к сбою в работе Odoo.

+0

да, кажется, база данных не обновляется. но можете ли вы рассказать мне, что мне не хватает, даже когда я обновляю код в базовом модуле напрямую, а не наследую объект, то же самое происходит. Хотя модель res.bank разрешает обновление, поэтому я считаю, что моя конфигурация postgre в порядке. –

+0

Вы восстановили свой базовый модуль? После перекомпиляции кода вам нужно перейти к Модулям в модуле конфигурации и обновления, которые вы изменили. –

+0

Сделано, что тоже, все равно никакого эффекта. что если я создаю новую базу данных, то и поле работает. но до сих пор не повезло с проблемой on-change, когда я обновляю onchange def, он возвращает внутреннюю ошибку сервера. –

1

OMG! я никогда не думал, какой глупый вопрос может быть. так как я использовал блокнот ++, моя добавленная строка определения использовала 5 пробелов впереди, а другие - 4 пробела, хотя для добавления лишнего места не обязательно было преступление, но во время компиляции это вызывало ошибку.

благодаря odoo.py он упомянул об ошибке вложения, в то время как я пытался подделать еще один модуль. Урок узнал, как даже наименьшая возможная вещь может дать вам проблему с большими ошибками, когда дело доходит до кода.