Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当状态为';确认';?_Python_Xml_Odoo_Odoo 10 - Fatal编程技术网

Python 当状态为';确认';?

Python 当状态为';确认';?,python,xml,odoo,odoo-10,Python,Xml,Odoo,Odoo 10,当对象的状态更改为“已确认””时,我需要表单中的所有字段都是只读的。到目前为止,我在每个字段中都添加了attrs=“{'readonly':[('state','=','confirated')]}”,但我想知道是否有任何方法可以使其更为优化。如果您想将该条件应用于模型的每个视图(在Odoo的不同部分中显示了多个表单视图的模型),最好用Python来指定它。在每个字段的定义中,应添加状态参数: your_field = fields.Whatever( ... readonly=

当对象的状态更改为“
已确认”
”时,我需要表单中的所有字段都是只读的。到目前为止,我在每个字段中都添加了
attrs=“{'readonly':[('state','=','confirated')]}”
,但我想知道是否有任何方法可以使其更为优化。

如果您想将该条件应用于模型的每个视图(在Odoo的不同部分中显示了多个表单视图的模型),最好用Python来指定它。在每个字段的定义中,应添加
状态
参数:

your_field = fields.Whatever(
    ...
    readonly=False,
    states={
        'confirmed': [('readonly', True)],
    }
)
这样,如果用户通过与您已修改的视图不同的视图打开模型,则如果状态已确认,则字段将为只读,而您未修改已打开的视图并不重要

另一方面,如果您只想在特定的表单视图中应用您的目的,您可以做一些比向每个字段添加
attrs
更快的事情,例如将其添加到包含多个字段的标记中,如
group
。这同样有效,而且对您来说速度更快:

<group attrs="{'readonly': [('state', '=', 'confirmed')]}">
    <field name="your field_1"/>
    <field name="your field_2"/>
    ...
</group>

...

IIRC没有更好的方法了。真棒@forvas