跳至內容
選單
此問題已被標幟
4 回覆
3407 瀏覽次數

i want to hide the field "parent_id"  in the 'hr.department' form view if the field "scale" equal to "top" 

the thing is the "scale" field from diffrent class than the partner_id 


in my model.py 

class depart_typ(models.Model):

    _inherit = "hr.department"


    depart_typ = fields.Many2one('department.type', 'Type')

    

class depart_line(models.Model):

    _name = "department.type"

    _description = "Type Hierarchie"


    nom_typ = fields.Char(string="Nom")

    scale =  fields.Selection([ ('type1', 'top'),('type2', 'intermed'),('type3', 'child'),],'Niveau', default='type2')


and on my xm file 


<record id="view_hr_department_inherit" model="ir.ui.view">

                <field name="name">hr.department.form.inherit</field>

                <field name="model">hr.department</field>

                <field name="inherit_id" ref="hr.view_department_form"/>

                <field name="arch" type="xml">

                    <xpath expr="//form/sheet/group/field[@name='parent_id']" position="before">

                        <field name="depart_typ">

                            <form>

                                <group>

                                    <field name="scale"/>

                                    <field name="parent_id" string="Unité fonctionnement Parent" attrs="{'invisible':[('scale', '==', 'type1')]}"/>

                                    <field name="nom_typ"/>

                                </group>

                            </form>

                        </field>

                        

                    </xpath>


                </field>

    </record>


and i get the error that the partner_id dosen't exist 

which is totally logical, the filed in not on the same classe. is there any solution ? 

     

頭像
捨棄

Which Field you want to hide?? parent _id or partner_id ? ?

didn't saw any field named partner_id in your code .

作者

yes the parent_id sorry for miss leading you, i updated my question 

作者 最佳答案
i got this error when i declared as a related field 

File "/usr/lib/python3/dist-packages/odoo/fields.py", line 486, in _setup_related_full
    field = target._fields[name]
KeyError: 'depart_typ'



頭像
捨棄

Did you declare this field in the hr.department model? Also if you can please share the complete code here to see where the problem is.

作者

here is my code on model.py

class depart_typ(models.Model):

_inherit = "hr.department"

depart_typ = fields.Many2one('department.type', 'Type')

class depart_line(models.Model):

_name = "department.type"

_description = "Type Hierarchie"

name = fields.Char(string="Nom", store=True, readonly=False)

scale = fields.Selection([ ('type1', 'Top'),('type2', 'Interm'),('type3', 'Child'),],'Scale', default='type2')

the xml file

<record id="view_hr_department_inherit" model="ir.ui.view">

<field name="name">hr.department.form.inherit</field>

<field name="model">hr.department</field>

<field name="inherit_id" ref="hr.view_department_form"/>

<field name="arch" type="xml">

<xpath expr="//form/sheet/group/field[@name='parent_id']" position="before">

<field name="depart_typ">

<form>

<group>

<field name="name"/>

<field name="scale"/>

<field name="parent_id" string="Unité fonctionnement Parent" attrs="{'invisible':[('scale', '==', 'type1')]}"/-->

</group>

</form>

</field>

</xpath>

</field>

</record>

最佳答案

Hi himaOdoo,

You will have to declare a related field in hr.department like

scale = fields.Selection(related='depart_typ.scale')
Hope it will solve your issue!!!

P.S. You will get an error for 

<field name="nom_typ"/> 
as nom_type does not belong to hr.department model
頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
0
11月 24
9369
4
5月 24
12772
1
4月 24
3389
0
11月 23
2068
1
9月 23
2192