#odoo #odoo-12
#odoo #odoo-12
Вопрос:
Я пытаюсь создать новый контакт в приложении odoo, но он показывает мне эту ошибку :
KeyError: 'ir.values'
Проблема связана с этой функцией.
class ResPartner(models.Model):
_inherit = 'res.partner'
def _default_credit_limit(self):
return self.env['ir.values'].get_default('account.config.settings', 'credit_limit')
Я не понимаю проблему
Не могли бы вы мне помочь, пожалуйста
Комментарии:
1. какую версию Odoo вы используете?
2. спасибо за ваш ответ. Я использую odoo 12
Ответ №1:
Ошибка ключа: ‘ir.значения’
Если вы запустите self.env['ir.values']
на Odoo 12, вы получите указанную выше ошибку, потому что ir.values
модель не существует в Odoo 12.
ir.values
Модель была удалена и заменена на ir.default
. Например:
self.env['ir.default'].get('sale.order', 'sale_order_template_id')
Вы можете увидеть соответствующий файл в коде ядра Odoo или в коммите, куда была добавлена большая часть этой модели.
Ответ №2:
Вы уверены, что этот параметр вообще существует? Я не знаю наверняка, но не смог его найти, я знаю, что в Odoo 8 он существовал. Помимо того факта, что я не думаю, что он больше не существует: account.config.settings
не существует на 100%, потому что модель настроек была переработана в res.config.settings
.
На самом деле поле partner credit_limit
тоже исчезло. Поэтому, если вы хотите использовать его и иметь значение по умолчанию вне кода, используйте ir.default
для желаемого поведения.
Комментарии:
1. привет, @CZoellner, спасибо за ваш ответ. Я не могу использовать объект [‘ir.default’], потому что у него нет атрибута ‘get_default’
2. Вы, очевидно, должны изучить модель самостоятельно. 😉 Вам также необходимо установить значение по умолчанию самостоятельно, оно не существует для
credit_limit