【发布时间】:2017-06-30 13:55:44
【问题描述】:
我对 Odoo 源代码中的某些内容感到困惑。在stock.picking 模型上,有一个product_id 字段。它通过move_lines.product_id 定义为相关字段。
move_lines 是 one2many 字段。我不明白 many2one 字段如何使用 one2many 字段作为其关系。
这是我所指的源代码的链接:
可以看到product_id被定义为:
product_id = fields.Many2one('product.product', 'Product', related='move_lines.product_id')
而move_lines定义为:
move_lines = fields.One2many('stock.move', 'picking_id', string="Stock Moves", copy=True)
这个定义的目的是什么?怎么可能允许?
如果我查看 product_id 字段的值以进行拣货,它会返回拣货中第一个移动行的产品,而不是所有产品。
但是,如果我在“产品”字段中使用自定义过滤器搜索拣货树视图,例如 Product contains 'Product Name',则结果似乎包含了拣货中的所有产品。如果我在picking 中搜索任何产品,picking 出现在视图中,它不仅限于第一个产品。
有人可以解释这种行为吗?源代码中甚至有一个注释,product_id 字段是专门用于搜索的,所以我在想有一些我从来不知道的神奇功能。
【问题讨论】:
标签: openerp