属性不在带或运算符的odoo中工作

2024-09-29 06:25:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用属性使字段在特定条件下为只读,但它似乎不起作用。我用AND运算符链接了两个域表达式,用OR运算符链接了另一个域表达式,但它并没有使字段为只读

<field name="medic_data" options="{'no_quick_create':True,'no_create_edit':True}"
                         domain="[('state','=','accepted')]"
                         attrs="{'readonly':[('speciality','=',False),('search_by','=','especialidad'),'|',('state','=','accepted')],}"/>

我使用('speciality','=',False), 'search_by','=','especialidad')但不使用('state','=','accepted')


Tags: nofalsetruesearchby属性表达式链接
2条回答

域中的错误是,您添加了一个OR,但之后只进行了一次搜索

操作员必须始终使用2搜索。 示例:['&',('speciality','=',False),('search_by','=','especialidad)]

在python代码中,您的域可以这样编写:

if speciality == False and search_by == 'especialidad' and or state == 'accepted':

有两个操作员互相跟踪。我认为,这是一个简单的假设。你试着写这个

[('speciality','=',False),'|',('search_by','=','especialidad'),('state','=','accepted')]

对于更多的解释,如果您拆分并添加显式运算符,域如下所示

[
    '&',
        ('speciality','=',False),
        '|',
            ('search_by','=','especialidad'),
            ('state','=','accepted')
]

在python中,域可以这样编写

if speciality == False and (search_by = 'especialidad' or state = 'accepted')

在代码中尝试两次or运算符,如下所示:

<field name="medic_data" options=" 
   {'no_quick_create':True,'no_create_edit':True}"
                         domain="[('state','=','accepted')]"
                         attrs="{'readonly':[('speciality','=',False), 
  ('search_by','=','especialidad'),'|', '|', 
  ('state','=','accepted')],}"/>    

相关问题 更多 >