我想搜索依赖于其他字段的2个任意字段的记录。
这是我的密码
父类:
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')
查看
<record id="view_ata_sale_order_form_inherit" model="ir.ui.view">
<field name="name">view.ata.sale.order.form.inherit</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="partner_channel_id" invisible="1"/>
<field name="customer_product_ids"/>
</field>
<xpath expr="//tree/field[@name='product_id']" position="attributes">
<attribute name="domain">[('id', 'in', [rec.id for rec in parent.customer_product_ids])]</attribute>
</xpath>
</field>
</record>
默认情况下,客户可以看到定义的所有产品。
在我的情况下,我需要根据客户的选择筛选产品。
每个客户可以有不同的列表产品,或者如果他们没有分类,他们可以看到所有产品。
我尝试了上面的代码,但出现了错误:
Uncaught Error: Expected "]", got "(name)"
我想错误来自以下代码:
<attribute name="domain">[('id', 'in', [rec.id for rec in parent.partner_product_ids])]</attribute>
我的问题,
是否可以像上面的代码(在视图中)那样理解python循环?
谢谢你。
在您的情况下,您需要使用
onchange
,并将动态域返回到one2many字段你应该吃点这样的东西:
我不会为您编写代码,因此您必须搜索并应用
onchange
。您可以找到一些信息here。你好,莫斯塔法和亚历山德罗·鲁弗洛
非常感谢您回答我的问题:)(很抱歉您的回答太晚了)
我试过Mostafa Mohamed的解决方案,但它不影响产品列表(它们一直显示所有产品)。
What should onchange methods do and return?
这是我的密码
我尝试了另一种解决方案,所以我在product.product模型中重写了search\u name和search方法,并且它是有效的。
这里是我的代码,
1) 继承sale_view.xml
以及覆盖方法
2) 搜索名称方法:
3)搜索方法:
我在这里要做的是,当他们在上下文和域中检测到“partner_channel_id”时,例如[“sales_channel_id”、“=”、False],我删除了该域并保留其余的域(客户没有channel可以看到所有产品,没有从中筛选产品)。
你不能把这样的代码放进去。我会用另一种方式:
更改产品模型并添加其客户
然后,可以更容易地更改视图:
或者
(取决于您的产品id字段在哪里。。。
相关问题 更多 >
编程相关推荐