2016-12-14 4 views
1

Я пытаюсь создать новое поле на модели sale.order.line. Это поле называется x_all_route_ids и предназначено для хранения всех доступных stock.location.route для строки заказа.Вычисление многих других зависимостей полей в Odoo 10

Он должен смотреть на product_id.route_ids и product_id.routes_from_categ_ids для линии заказа, и соединить их вместе в единый набор маршрутов.

Я пытаюсь установить это поле через интерфейс Odoo, но получаю ошибку, связанную с моими «зависимостями».

У меня есть зависимости определена как:

product_id, product_id.route_ids, product_id.routes_from_categ_ids 

Я Compute определяется как:

for record in self: 
    record['x_all_route_ids'] = record.product_id.route_ids 

Для начала я просто пытаюсь получить поле, чтобы показать такое же значение, как product_id.route_ids, но это не работает. При сохранении я получаю следующую ошибку:

Error while validating constraint 

Unknown field u'product_id' in dependency u'product_id' 

Любая идея, что я делаю неправильно здесь?

+0

Можете ли вы поделиться определение поля нового вычисляемого поля и весь вычислительный метод? – CZoellner

+0

@CZoellner Я разместил решение ниже – flyingL123

ответ

1

Я смог получить эту работу. Я думаю, что проблема была просто ошибкой в ​​пользовательском интерфейсе, который возник, потому что я пытался так много разных вещей. После обновления страницы, следующие работали:

Dependency = product_id

Тип поля = many2many

Compute метод:

for record in self: 
    full = record.product_id.route_ids | record.product_id.route_from_categ_ids 
    record['x_all_route_ids'] = full.filtered('sale_selectable') 
+0

Я бы предпочел, чтобы получить полный код решения. Как каждый день разработчик-разработчик, у меня нет проблем, чтобы понять этот ответ, но я сомневаюсь, что начинающие разработчики этого процесса поймут это. Пожалуйста, добавьте полное определение поля и минимальный метод с заголовком и телом (не обязательно должна быть полной бизнес-логикой). – CZoellner

+0

Извините, я не уверен, о чем вы просите. Вы можете уточнить? Я новичок в Odoo. Я создал это поле через интерфейс Odoo, а не через код XML. Может, это разъединение? – flyingL123

+0

О, это все разъясняет. Вы используете Odoo Studio? Или просто «нормальные» функции бэкэнд. – CZoellner