首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Odoo -添加与销售订单相关的自定义字段

Odoo -添加与销售订单相关的自定义字段
EN

Stack Overflow用户
提问于 2020-08-28 19:25:13
回答 1查看 195关注 0票数 1

如下所示,我将sub.name字段添加到销售订单模型中,它工作得很好。

代码语言:javascript
复制
class sales_order_imcc(models.Model):
    _inherit = 'sale.order'
    sub_name = fields.Char(string="Subject Name")

现在我需要将这个字段sub_name添加到选股模型中,但是我得到了一个内部服务器错误

代码语言:javascript
复制
class stock_exp(models.Model):
    _inherit = 'stock.picking'
    sub_name = fields.Char(string="SO Reference", related="sale_order_id.sub_name")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-28 22:23:30

sale_order_id应该在stock.picking模型中,如果不在,你会得到一个错误。在Odoo10之前,sale_stock中添加了一个名为sale_id的计算字段。

Odoo 8示例:

代码语言:javascript
复制
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示例中看到这一点:

代码语言:javascript
复制
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的值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63632868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档