Odoo - 添加与销售订单相关的自定义字段
Odoo - add custom field related to Sale Order
如下所示,我在销售订单模型中添加了 sub.name 字段并且效果很好。
class sales_order_imcc(models.Model):
_inherit = 'sale.order'
sub_name = fields.Char(string="Subject Name")
现在我需要将此字段 sub_name 添加到选股模型,但出现内部服务器错误
class stock_exp(models.Model):
_inherit = 'stock.picking'
sub_name = fields.Char(string="SO Reference", related="sale_order_id.sub_name")
sale_order_id
应该在 stock.picking
模型中,否则会出现错误。在 Odoo 10 之前,在 sale_stock
.
中添加了一个名为 sale_id
的计算字段
Odoo 8 示例:
def _get_sale_id(self, cr, uid, ids, name, args, context=None):
sale_obj = self.pool.get("sale.order")
res = {}
for picking in self.browse(cr, uid, ids, context=context):
res[picking.id] = False
if picking.group_id:
sale_ids = sale_obj.search(cr, uid, [('procurement_group_id', '=', picking.group_id.id)], context=context)
if sale_ids:
res[picking.id] = sale_ids[0]
return res
_columns = {
'sale_id': fields.function(_get_sale_id, type="many2one", relation="sale.order", string="Sale Order"),
}
从版本10开始,sale_id
被转换为相关字段,可以在下面Odoo 13的例子中看到:
class StockPicking(models.Model):
_inherit = 'stock.picking'
sale_id = fields.Many2one(related="group_id.sale_id", string="Sales Order", store=True, readonly=False)
您可以根据您的 Odoo 版本使用相同的逻辑从 sale.order
.
获取 sub_name
的值
如下所示,我在销售订单模型中添加了 sub.name 字段并且效果很好。
class sales_order_imcc(models.Model):
_inherit = 'sale.order'
sub_name = fields.Char(string="Subject Name")
现在我需要将此字段 sub_name 添加到选股模型,但出现内部服务器错误
class stock_exp(models.Model):
_inherit = 'stock.picking'
sub_name = fields.Char(string="SO Reference", related="sale_order_id.sub_name")
sale_order_id
应该在 stock.picking
模型中,否则会出现错误。在 Odoo 10 之前,在 sale_stock
.
sale_id
的计算字段
Odoo 8 示例:
def _get_sale_id(self, cr, uid, ids, name, args, context=None):
sale_obj = self.pool.get("sale.order")
res = {}
for picking in self.browse(cr, uid, ids, context=context):
res[picking.id] = False
if picking.group_id:
sale_ids = sale_obj.search(cr, uid, [('procurement_group_id', '=', picking.group_id.id)], context=context)
if sale_ids:
res[picking.id] = sale_ids[0]
return res
_columns = {
'sale_id': fields.function(_get_sale_id, type="many2one", relation="sale.order", string="Sale Order"),
}
从版本10开始,sale_id
被转换为相关字段,可以在下面Odoo 13的例子中看到:
class StockPicking(models.Model):
_inherit = 'stock.picking'
sale_id = fields.Many2one(related="group_id.sale_id", string="Sales Order", store=True, readonly=False)
您可以根据您的 Odoo 版本使用相同的逻辑从 sale.order
.
sub_name
的值