如何在同一模型的many2one字段中使用one2many字段的虚拟记录

时间:2019-09-21 13:11:06

标签: orm odoo odoo-12

在“销售订单”表单中,我添加了一个名为[[('0', 'COL1', 'date'),('2', 'COL1', 'date'),('4', 'COL1', 'date')],[('1', 'COL2', 'date'),('6', 'COL2', 'date')],[('3', 'COL3', 'date')]] 的one2many字段,该字段显示在可编辑的树形视图中

在订单行的树中,我添加了一个名为booking_ids的many2one列,因此每个订单行都有一个booking_id。

booking_id的编辑模式或创建模式下,如何显示在多显示一个字段中sale.order字段中添加的虚拟记录数据库中没有创建虚拟记录的记录。

booking_ids

XML

class SaleOrder(models.Model):
    _inherit = 'sale.order'
    booking_ids = fields.One2many('sale.booking', 'order_id', string='Bookings')

class SaleOrderLine(models.Model):
    _inherit = 'sale.order.line'        
    booking_id = fields.Many2one('sale.booking', string="Booking")

class Booking(models.Model):
    _name = 'sale.booking'
    event_id = fields.Many2one('sale.event', String='Event', required=True,
    states={'draft': [('readonly', False)], 'sent': [('readonly', False)]})
    name = fields.Char(compute='_get_name')
    event_date = fields.Date(string='Event Date')
    order_id = fields.Many2one('sale.order', string='Order Reference', ondelete='cascade', index=True, copy=False, readonly=True)
    order_line_ids = fields.One2many('sale.order.line', 'booking_id', string='Order Lines')

谢谢

1 个答案:

答案 0 :(得分:0)

在Python代码中使用预加载。这样可以解决您的问题。