gpt4 book ai didi

python - 当状态为 'confirmed' 时,如何使表单中的所有字段只读?

转载 作者:数据小太阳 更新时间:2023-10-29 02:28:34 24 4
gpt4 key购买 nike

当对象的状态更改为“confirmed”时,我需要表单中的所有字段都是只读的。到目前为止,我把 attrs = "{'readonly': [('state', '=', 'confirmed')]}" 放在每个字段中,但我想知道是否有使其更优化的方法。

最佳答案

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

your_field = fields.Whatever(
...
readonly=False,
states={
'confirmed': [('readonly', True)],
}
)

这样,如果用户通过不同于您修改的 View 打开模型,如果状态已确认,字段将是只读的,您没有修改打开的 View 也没关系.

另一方面,如果你只想在特定的表单 View 中应用你的目的,你可以做一些比将 attrs 添加到每个字段更快的事情,它会将它添加到标签中其中包含多个字段,例如 group。这也适用于您并且速度更快:

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

关于python - 当状态为 'confirmed' 时,如何使表单中的所有字段只读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50293876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com