Я определил новое поле модели product.product
с использованием пользовательского интерфейса в Odoo V10. Поле определяется следующим образом:Относительно связанное с Одуо поле, если store = True
Name = x_sellable_inventory
Type = float
Readonly = true
Dependencies = qty_available,outgoing_qty
метод Compute является:
for record in self:
record['x_sellable_inventory'] = record.qty_available - record.outgoing_qty
Я добавил в этом поле зрения, и подтвердил, что это правильно меняется, если инвентарный корректируется на продукт под рукой , Пока все работает как ожидалось.
Теперь, я хочу иметь доступ к этому значению из sale.order.line
, поэтому я создал связанное поле на sale.order.line
, чтобы получить к нему доступ. Он определяется следующим образом:
Name = x_product_sellable_inventory_new
Type = float
Readonly = true
Stored = true
Related Field = product_id.x_sellable_inventory
Затем я добавил в этом поле зрения продажи заказа, чтобы я мог видеть его в списке строк заказа. Он появляется один раз для каждой строки заказа в дереве.
Теперь, когда я меняю количество товаров на товар, он по-прежнему корректно обновляется на представлении продукта, но значение в строке заказа на продажу никогда не изменяется. Он никогда не меняется с того начального времени, когда он был установлен.
Если я снижу флажок Store
, значение будет обновлено правильно. Что здесь происходит? Почему имеет значение, если связанная область хранится или нет? Не следует ли обновляться при изменении значения product_id.x_sellable_inventory
?
спасибо. Я спрашиваю о поле 'related', а не' computed'. Это имеет значение? Согласно этим документам: http://odoo-new-api-guide-line.readthedocs.io/en/latest/fields.html#related-field говорит: «Настройка store kwarg автоматически сохранит значение в базе данных. С новым API значение связанного поля будет автоматически обновляться, сладкое ». Что мне здесь не хватает?Кроме того, не означает ли ваш ответ, что зависимости от вычисленных полей не имеют значения, если 'store = True'? Поскольку поле никогда автоматически не перекомпонует себя, изменения зависимостей не влияют. – flyingL123
Я не уверен, правильны ли документы или нет. Однако я считаю, что принцип все еще стоит. Вы должны иметь возможность обновлять поле, которое хотите, используя некоторые варианты этого обходного пути. Я понимаю, что store = True только один раз срабатывает. Независимо от того, что говорят документы. –
Значит ли зависимости нецелесообразно использовать для сохраненного вычисленного поля? Я новичок в Odoo, пытаясь изучить все эти тонкости. Спасибо за помощь. – flyingL123