Я пытаюсь изменить значение по умолчанию для поля модели наследования. Модель, которую я пытаюсь изменить это account.invoice так:Модели Odoo наследуют изменение модели по умолчанию
class account_invoice(models.Model):
_inherit = 'account.invoice'
defaults = {
'journal_id': None,
}
причина заключается в том, что клиент имеет несколько журналов и боится, что некоторые сотрудника забудьте изменить на правильный журнал. Мне нужно, чтобы выбрать его вручную
EDIT: Я использую этот код, но _default_currency не переопределяют
from openerp import fields, models, osv, api, _
from openerp.osv import osv,fields as Fields
TYPE2JOURNAL = {
'out_invoice': 'sale',
'in_invoice': 'purchase',
'out_refund': 'sale_refund',
'in_refund': 'purchase_refund',
}
class account_invoice(models.Model):
_inherit = 'account.invoice'
@api.model
def _default_journal(self):
return None
@api.model
def _default_currency(self):
inv_type = self._context.get('type', 'out_invoice')
inv_types = inv_type if isinstance(inv_type, list) else [inv_type]
company_id = self._context.get('company_id', self.env.user.company_id.id)
domain = [
('type', 'in', filter(None, map(TYPE2JOURNAL.get, inv_types))),
('company_id', '=', company_id),
]
journal = self.env['account.journal'].search(domain, limit=1)
return journal.currency or journal.company_id.currency_id
Я успешно переопределяю def _default_journal, чтобы возвращать None, но когда я пытаюсь сделать это для def _default_currency, функция является вызовом из исходной модели, я получаю ошибку в модели account_invoice с пути odoo. –
Хотите показать мне код? убедитесь, что зависимости в __openerp__.py определены как модель, которую вы наследуете. Кроме того, убедитесь, что это единственный модуль, переопределяющий его. В любом случае, попробуйте позвонить в супер, чтобы вы не нарушили целостность, просто измените значение возврата. – dccdany
Я добавляю код, редактирующий сообщение оригинала, для отладки. Я добавляю печать в первой строке def _default_currency, но никогда не печатаю, поэтому функция никогда не вызывается, кроме того, я получаю объект nonetype, не имеет .currency в оригиналах odoo account_invoice .py file –