在我的列表视图中,我需要在满足条件时隐藏一个字段:odoo

问题描述 投票:0回答:2

我设法隐藏内容,但我需要列表视图中的标签以及创建记录的日期在列表视图中不可见

在 xml 中添加 attrs='{"invisible":[("x_studio_selection_field_nZGcq","=","apple")]}' 但它只隐藏内容而不隐藏字段标签

如果满足条件,我需要隐藏两者

python xml listview odoo-14 odoo-15
2个回答
0
投票

根据条件隐藏列表视图上的列是不可行的。因为还有其他可能性,其他记录集满足该条件并想要显示值。

Odoo 将允许我们在树视图中设置不可见属性,但它对值的唯一影响意味着值将被隐藏,而不是列标签/标题。


0
投票

是的,例如,您可以使用 def get_view 方法函数

@api.model
def get_view(self,views,options=None):
    res = super().get_views(views,options=options)
    if 'tree' in res["views"]:
        arch = res["views"]["tree"]["arch"]
        doc = etree.fromstring(arch)
        #your condition goes here
        if self.env.user.has_groups('any security'):
            your_field = doc.xpath("//field[@name='your_field_name']")
            if your_field:
               your_field[0].set("invisible", "True")

       
            arch = etree.tostring(doc, encoding="unicode")
            res["views"]["tree"]["arch"] = arch
    return res
© www.soinside.com 2019 - 2024. All rights reserved.