我们知道在类 sale_order 中有 sale_order_line。这是我的py:
class sale_order(models.Model):
_name = 'sale.order'
order_ids = fields.One2many('sale.order.line','sales_order_id','Order Line')
delivery_ids = fields.One2many('delivery.schedule','delivery_id','Delivery Line')
class sale_order_line(models.Model):
_name = 'sale.order.line'
sales_order_id = fields.Many2one('sale.order','Sales Order')
product_id = fields.Many2one('product.product','Product')
class delivery_schedule(models.Model):
_name = 'delivery.schedule'
delivery_id = fields.Many2one('sale.order','Sales Order')
delivery_product_id = fields.Many2one('sale.order.line','Product')
我的问题是,如何仅从 sale_order 文档中的product_id 中显示Many2one Delivery_product_id 中的产品项目?
您问题的答案是有另一个与其product_id字段相关的字段。建议:
delivery_id = fields.Many2one('sale.order', string='Sale Order')
delivery_line_id = fields.Many2one('sale.order.line', string='Order Line')
delivery_product_id = fields.Many2one('product.product', related='delivery_line_id.product_id', string='Product')
您可以查看其他模块如何声明模型,对于销售订单和销售订单行,它确实存在于销售模块中,因此您应该使用_inherit而不是使用_name。
并且某些字段已经在父级中声明,因此您不必再次重新声明它(例如 so 中的 order_ids,so 行中的 sale_order_id 因为它与默认 order_id 会不明确,而product_id 将是多余的,因为属性已经存在)