【问题标题】:Avoid Listing Sale Orders based on Products避免根据产品列出销售订单
【发布时间】:2017-03-21 07:12:34
【问题描述】:

我的要求是不在列表中显示其产品代码的销售订单。 问题是,由于销售订单包含多个产品,我的域过滤器出错了。 我写的过滤域是,

[['state', '!=', 'done'], ['product_id.default_code', 'not in', ['12345', '12311','45345']]]

仅包含一种产品且其产品代码在列表中的销售订单正在被过滤。 但是,包含多个产品并且其中一个产品的默认代码在指定列表中的销售订单也会列出。 如何避免这种情况

【问题讨论】:

    标签: openerp odoo-8 odoo-10


    【解决方案1】:

    您应该在销售订单行中创建一个相关字段存储 False。

    例如:

    class sale_order_line(models.Model):
        _inherit="sale.order.line"
    
        default_code=fields.Char("default code",related="product_id.default_code",store=False,readonly=True)
    

    现在您可以根据销售订单行提供域。

    [['state', '!=', 'done'], ['order_line.default_code', '不在', ['12345', '12311','45345']]]]

    【讨论】:

    • 为什么不直接使用order_line.product_id.default_code
    • product_id 是 Sale Order 中的一个关系字段。过滤器中存在注意错误。它工作正常,但没有达到我的要求。
    猜你喜欢
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多