У меня проблемы с пониманием наследования в odoo. Рассмотрим следующий код в модуль 1Odoo 8 method resolution order
`class pos_order(models.Model):
_inherit = 'pos.order'
def create_from_ui(self, cr, uid, orders, context=None):
super(models.Model, self).create_from_ui(cr, uid, orders, context=context)
print "1"`
и тот же модуль 2, только он печатает 2. Первый модуль 1 установлен, то модуль 2. Как вы видите, в обоих pos_order расширена с пользовательской функцией create_from_ui. Если вызывается create_from_ui, теперь вызывается порядок module2, который в свою очередь вызывает порядок module1, который в свою очередь вызывает оригинал. Как я могу теперь назвать только оригинал (скажем, я не хочу, чтобы «1» печатался при определенных обстоятельствах)?
Приветствие и большое спасибо за помощь
Андреас это, должно быть, я даже не думал об этом! :) Спасибо – detroit
Другой вопрос по этой проблеме. Я пытаюсь вызвать функцию «create», которая вызывается в конце исходного create. Я знаю, что это звучит странно, но pos_order.create вызывает другое создание, которое приводит к некоторой оболочке old_api и возвращает новый идентификатор заказа 'return super (pos_order, self) .create (cr, uid, values, context = context)'. Как я могу назвать это создание из недавно созданного модуля. Мне просто нужно позвонить прямо. Если я назову именно эту часть кода в новом модуле, вызывается исходное pos_order.create, так как оно имеет такое же имя. Еще раз спасибо – detroit
@detroit Да, это 'create()', который фактически записывается в базу данных. Это часть класса Model (тот, который вы унаследовали), поэтому вы можете просто называть 'models.Model.create (self, ...)' –