栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我不懂普通波兰语符号(NPN或PN)。如何在Odoo中建立一个复杂的域?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我不懂普通波兰语符号(NPN或PN)。如何在Odoo中建立一个复杂的域?

我完全同意您的观点,每次我必须使用这种波兰语符号来完成一个复杂的领域时,我都必须下定决心来管理它。

我认为您要查找的域是:

['&', '|', '&', ('is_company', '=', True), ('parent_id', '=', False), ('company_name', '!=', False), '&', ('company_name', '!=', ''), ('customer_type_id', '!=', False)]

我制定了一种获取这些复杂域的方法,并且可以正常工作:

首先,我写一封信,而不是写每个条件:

A => is_company = True => ('is_company', '=', True)B => parent_id = False => ('parent_id', '=', False)C => company_name <> False => ('company_name', '!=', False)D => company_name <> '' => ('company_name', '!=', '')E => customer_type_id <> False => ('customer_type_id', '!=', False)

然后,仅使用字母和标准运算符来构建所需的表达式,而无需考虑波兰语符号和条件:

Step 0. => ((A and B) or C) and D and E

然后,将您应该首先执行的操作分组(暂时不要担心丢失的运算符):

Step 1. => ((A and B) or C) and D and EStep 2. => (AB or C) and D and EStep 3. => ABC and D and EStep 4. => ABC and DE

现在我们只有一个运算符,让我们开始重新分解(并将运算符移到每对条件的左侧),然后按照将操作分组的相反顺序(例如,从步骤3到步骤4分组DE,所以现在从第4步到第3步,分解DE并将其运算符移到左侧):

Step 4. => and ABC DEStep 3. => and ABC and D EStep 2. => and or AB C and D EStep 1. => and or and A B C and D E

现在更改运算符,并添加逗号,引号和括号:

['&amp;', '|', '&amp;', A, B, C, '&amp;', D, E]

最后,将字母替换为条件,然后您便拥有了域。最好面对面解释它,但也许您能够理解所有内容。

注意:我不会删除

&amp;
运算符(即使您不编写运算符,Odoo也会默认使用它们),因为我的经验是在最大的域中,如果不编写
&amp;
,则该域无效。我猜这是在存在许多嵌套条件的情况下发生的,但是我的建议是始终编写它们。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668014.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号