簡體   English   中英

在以下情況下如何為many2one字段傳遞不可見?

[英]How to pass invisible for many2one field in following situation?

在這里,我在此字段中擁有asset.asset繼承的模塊。 我有一個具有A,B值的company_id1 如果所選的company_id1為B,則“ manna_svg”應在表格中不可見。

class asset_asset(osv.osv):
    _inherit = "asset.asset"
    #_name = "asset_asset"
    _rec_name= "folio_num"
    #_rec_name = "assetmodelid_add"
    CRITICALITY_SELECTION = [
        ('0', 'General'),
        ('1', 'Important'),
        ('2', 'Very important'),
        ('3', 'Critical')
    ]
    _columns = {
        'name': fields.char('Asset Name', size=64),
        'numbers': fields.char('Numbers', size=64),
        'company_id1': fields.many2one('res.company', 'Substation', required=True),
        'tcomp': fields.char('Type of Substation'),
        'bcomp': fields.char('Substation Belongs to'),

        #'place1': fields.many2one('asset.parentlocation', 'Location'),
        'asset_catg_id' : fields.many2one('asset.catg', 'Asset Catg ',select=True, required=True),
            'area_id' : fields.many2one('asset.name', 'Asset Name ', domain="[('asset_catg_id', '=', asset_catg_id)]", select=True, required=True),
        'assetmodelid_add' : fields.many2one('agile.portfolio1','Asset Model Code',domain="[('area_id', '=', area_id)]",),
        'user_id': fields.many2one('res.users', 'Assigned to', track_visibility='onchange'),
        'criticality': fields.selection(CRITICALITY_SELECTION, 'Criticality'),
            'active': fields.boolean('Active'),
        'folio_num' : fields.char('Folio No',),
        'asse_line':fields.one2many('asset.line','emp_id','Name Plate'),
        'asse_line2':fields.one2many('asset.part','emp_id1','Parts'),
               #'assed_modelid':fields.many2one('agile.portfolio1','Asset Model ID',select=True, required=True),
        'quantity': fields.char('Quantity',size=64),
        'uom': fields.char('Uinit of Measure',size=64),
        'model_no' : fields.char('Model', size=64),
        'msr_hour' : fields.one2many('hour.attr','hour_msr1','Inspection Attr',),
        'manna_svg' : fields.many2one('svg.form','Single Line Diagram',)

        #'asset_id':fields.many2one('agile.portfolio','Asset ID'),

    }

以下代碼是asset_view.xml文件

<xpath expr="//form/sheet/div/field[@name='name']" position="after">
                    <group><field name="asset_catg_id"/>

                    <field name="area_id" options="{'no_create': True, 'no_create_edit':True}"/>
                    <field name="assetmodelid_add" on_change="get_asset_parts(assetmodelid_add)" options="{'no_create': True, 'no_create_edit':True}"/>
                    <field name="company_id1" on_change="onchange_first_last(company_id1)" options="{'no_create': True, 'no_create_edit':True}"/>
                    <field name="tcomp"/>
                    <field name="bcomp"/>
                    <!--<field name="model_no" on_change="get_asset_parts(assetmodelid_add)"/>-->
                        <field name="folio_num" />
                    <field name="criticality"/>
                                    <field name="user_id" options="{'no_create': True, 'no_create_edit':True}"/>
                    <field name="active"/>
                    <field name="manna_svg" attrs="{'invisible':[('company_id1', '!=', '0')]}"/>
                    </group>

                </xpath>

我們需要在xml端設置attrs,如下所示。

<field name="manna_svg" 
       attrs="{'invisible':[('company_id1.name', '=', 'company_name')]}"
/>

當您將屬性設置為attrs的右側時,這將使您的字段不可見。

編輯:

您可以嘗試以下技巧:

我們需要使用res.company對象創建相關字段。

'company_name': fields.related('company_id1', 'name', type='char', string='Product Category', store=True, readonly=True )

注意:

使用attrs中的字段之前,請不要忘記在.xml文件中添加此字段。

現在您的字段將是:

<field name="manna_svg" 
   attrs="{'invisible':[('company_name', '!=', 'Mannagudda')]}"
/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM