odoo 在 Many2one 中显示同一 ID 的产品

问题描述 投票:0回答:1

我们知道在类 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 中的产品项目?

odoo odoo-8
1个回答
0
投票

Many2one 到 sale.order.line 将指向行记录而不是其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 将是多余的,因为属性已经存在)

© www.soinside.com 2019 - 2024. All rights reserved.