product.product
モデルでOdoo V10のUIを使用して新しいフィールドを定義しました。フィールドは、このように定義されていますOdoo関連のフィールドが更新されない場合は、ストア= True
Name = x_sellable_inventory
Type = float
Readonly = true
Dependencies = qty_available,outgoing_qty
計算方法は次のとおりです。
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
このフィールドを販売注文ビューに追加して、注文ラインのリストに表示することができます。ツリー内の各注文行ごとに1回表示されます。
これで、製品の手持ち数量を変更すると、製品ビューではまだ正しく更新されますが、販売注文明細の値は決して変更されません。それが設定された最初の時間から変化することはありません。
Store
オプションのチェックを外すと、値が正しく更新されます。ここで何が起きてるの?関連するフィールドが格納されているかどうかはなぜ重要ですか? product_id.x_sellable_inventory
の値が変更されるたびに更新されるべきではありませんか?
ありがとうございます。私は '計算された'ではなく '関連する'フィールドについて質問しています。違いがありますか?これらのドキュメントによると:http://odoo-new-api-guide-line.readthedocs.io/en/latest/fields.html#related-fieldそれは言う: "ストアkwargを設定すると自動的に値をデータベースに格納します。新しいAPIを使用すると、関連するフィールドの値が自動的に更新されます。私はここで何が欠けていますか?さらに、 'store = True'の場合、計算されたフィールドへの依存関係が無関係であるという答えはありませんか?フィールドは自動再計算されないので、依存関係の変更は効果がありません。 – flyingL123
ドキュメントが正しいかどうかわかりません。しかし、私はその原則はまだ立っていると信じていますこの回避策のいくつかのバリエーションを使用して、必要なフィールドを更新することができます。私の理解は、store = Trueは一度だけ発火するということです。どのようなドキュメントが言われているのかにかかわらず。 –
依存関係は、格納された計算フィールドに対して何の目的も果たさないのですか?私はOdooには新しく、これらの複雑さをすべて学ぶことを試みています。ご協力ありがとうございました。 – flyingL123