【发布时间】:2022-11-15 23:58:19
【问题描述】:
目前,我有一个视图表单,有些字段需要通过单击按钮隐藏或取消隐藏。 我尝试使用 State,Boolean 字段但无法实现结果。 我的问题是我可以在 Odoo 上做吗?怎么做?
我使用了State和Boolean字段,并在字段上按条件设置,但是结果并不好。 当用户单击按钮时,隐藏字段将重新出现
【问题讨论】:
-
您能否在 xml 中包含字段代码以及单击按钮时调用的操作代码?
标签: odoo
目前,我有一个视图表单,有些字段需要通过单击按钮隐藏或取消隐藏。 我尝试使用 State,Boolean 字段但无法实现结果。 我的问题是我可以在 Odoo 上做吗?怎么做?
我使用了State和Boolean字段,并在字段上按条件设置,但是结果并不好。 当用户单击按钮时,隐藏字段将重新出现
【问题讨论】:
标签: odoo
是的,你可以做到。
odoo 中的按钮操作在执行之前触发 write 方法。 在实现您的逻辑和域以显示/隐藏 XML 视图中的字段之前,您应该意识到这一点。
您需要将 invisible 属性应用于您的领域内的域。
invisible 通常是静态的,但可以在attrs 属性中弹性化。
另一个重要的事情是,基于字段的域要求字段出现在视图中才能访问它。一个好的做法是让这些字段不可见,并将它们放在您的视图之上。
在你的模型中:
show_fields = fields.Boolean(default=False)
field_to_show = fields.Char()
def show_fields_action(self):
for record in self: record.show_fields = True
在您看来:
<field name="show_fields" invisible="1" />
<field name="field_to_show" attrs="{'domain': [('show_fields','=',True])}" />
<button name="show_fields_action" type="object" string="Show Fields" />
如果您的问题与 UI/UX 相关,请考虑改用 notebooks。
【讨论】: