如何在odoo12的树形视图中隐藏特定的列?

时间:2019-07-03 06:10:00

标签: view treeview odoo erp odoo-12

我有一个领域是M2o,而另一个领域是O2m。我试图像这样显示M2o类中的O2m字段,并在树视图中显示所有O2m字段。但是我需要隐藏基于ir.config_parameter

的一列
 from odoo import models, fields, api
    class AbcXyz(models.Model):
        _name='abc.xyz'

        b_ids=fields.One2many('xyz.abc','a_id',string="Xyz")

       @api.model
       def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
            res = super(AbcXyz, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu)
            if view_type=='form' and self.b_ids:
                for line in self.b_ids:
                    is_applying_view = eval(self.env['ir.config_parameter'].sudo().get_param('test_module.is_applying_k_qty'))
                    doc = etree.XML(res['arch'])
                    if is_applying_view:
                        for node in doc.xpath("//field[@name='line.k_qty']"):
                            node.set('invisible', '0')
                    else:
                        for node in doc.xpath("//field[@name='line.cartoon_qty']"):
                            node.set('invisible', '1')
            return res

    class XyzAbc(models.Model)
        _name='xyz.abc'

        @api.multi
        def get_default_k_qty_visible(self):
             return eval(self.env['ir.config_parameter'].sudo().get_param('test_module.is_applying_k_qty'))


         a_id=fields.Many2one('abc.xyz',string="ABC")
         <!---other fields--->
         k_qty=fields.Integer(string="Cartoon Qty", default=0)
         is_k_qty_visible = fields.Boolean(string="Is K Qty Visible", compute=get_default_cartoon_qty_visible, store=True)

基于is_k_qty_visible,我尝试隐藏k_qty列。

<record id="abc_form_view" model="ir.ui.view">
        <field name="name">abc.form.view</field>
        <field name="model">abc.xyz</field>
        <field name="type">form</field>
        <field name="arch" type="xml">
            <form string="ABC Process">
                <notebook>
                        <page string="K Qty">
                            <field name="b_ids" nolabel='1' mode="tree">
                               <tree>
                                  <field name="k_qty" attrs="{'invisible':[('is_k_qty_visible','!=',True)]}" />
                              </tree>
                            </field>
                        </page>
                </notebook>
            </form>
        </field>
    <record>

但这对我不起作用。

1 个答案:

答案 0 :(得分:0)

这不是这个问题的答案。我分享了一些信息。

此代码用于隐藏odoo11中one2many(树)中的字段

< 字段名称=“ my_field” attrs =“ {'column_invisible':[('parent.field_name','=',False)]}” />

这种类型的代码只能在条件为“父母”的情况下起作用

我认为这种类型的代码也可以在odoo12中使用。