当前位置:  开发笔记 > 编程语言 > 正文

odoo/openERP one2many字段动态域

如何解决《odoo/openERPone2many字段动态域》经验,为你挑选了1个好方法。

我想搜索依赖于另一个字段的one2many字段的记录.
这是我的代码,

家长班:

class SaleOrder(models.Model):
    _inherit = 'sale.order'

    customer_product_ids = fields.One2many('product.product',
                           compute='_get_partner_products')
    order_line = fields.One2many('sale.order.line', 'order_id')

儿童班:

class SaleOrderLine(models.Model):
    _inherit = 'sale.order.line'

    order_id = fields.Many2one('sale.order')
    product_id = fields.Many2one('product.product')

视图

 
        view.ata.sale.order.form.inherit
        sale.order
        
        
            
                
                
            
            
                [('id', 'in', [rec.id for rec in parent.customer_product_ids])]
            
        
    

默认情况下,客户可以查看定义的所有产品.
在我的情况下,我需要过滤产品取决于客户选择.
每个客户可以拥有不同的列表产品,或者如果他们没有分类,他们可以看到所有产品.

我尝试了上面的代码,但得到了错误:

Uncaught Error: Expected "]", got "(name)"

我想错误来自这段代码:

[('id', 'in', [rec.id for rec in parent.partner_product_ids])]

我的问题,
是否有可能像上面的代码(在视图中)做python循环理解?

谢谢.



1> Mostafa Moha..:

在您的情况下,您需要使用onchange动态域并将其返回到one2many字段

你应该有这样的事情:

@api.onchange('partner')
def onchange_partner(self):
    ids=search for products that have this partner
    then return some thing like this {'domain': {'Many2one or One2many': [('id', 'in', ids)}}

我不会为你编写代码,所以你必须搜索onchange并应用它.你可以在这里找到一些信息.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有