【问题标题】:how to add a label before a field based on condition如何根据条件在字段前添加标签
【发布时间】:2018-09-06 09:05:18
【问题描述】:

嗨,是否可以根据条件更改字符串标签

我有一个看板视图,我想在字段前添加一个字符串

这是我的 xml 代码:

 <record id="res_partner_kanban_inherit" model="ir.ui.view">
        <field name="name">Contact Kanban modification</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.res_partner_kanban_view"/>
        <field name="arch" type="xml">

            <xpath expr="//t[@t-name='kanban-box']//div[@class='oe_kanban_details']//field[@name='display_name']">

  <label for="class_id" string="class : " attrs="{'invisible':['is_company','=',false)]}"/>

        <field name="class_id">

在 xpath 下我想显示一个像这样的标签“类:” 但是有条件,因为我在看板视图上有很多项目,我只想将此文本添加到学生标签字符串未显示 如何解决这个问题

【问题讨论】:

    标签: xml odoo odoo-8


    【解决方案1】:

    是的,这是可能的。 invoice view definition中的 Odoo V8 中有一个很好的示例

    <sheet string="Supplier Invoice">
        <div class="oe_title">
            <h1>
                <label string="Draft Invoice" attrs="{'invisible': ['|',('state','&lt;&gt;','draft'), ('type','&lt;&gt;','in_invoice')]}"/>
                <label string="Draft Refund" attrs="{'invisible': ['|',('state','&lt;&gt;','draft'), ('type','&lt;&gt;','in_refund')]}"/>
                <label string="Invoice" attrs="{'invisible': ['|',('state', '=', 'draft'), ('type','&lt;&gt;','in_invoice')]}"/>
                <label string="Refund" attrs="{'invisible': ['|',('state', '=', 'draft'), ('type','&lt;&gt;','in_refund')]}"/>
                <field name="number" class="oe_inline"  attrs="{'invisible': [('state', '=', 'draft')]}"/>
            </h1>
        </div>
    

    如您所见,number 字段的标签基于四个条件。所有条件都使用在视图本身中定义的字段。这很重要!

    【讨论】:

      【解决方案2】:

      如果您正在寻找继承视图以更改标签的解决方案,请尝试以下操作:

      <?xml version="1.0"?>
      <odoo>
          <!-- show custom field in form view -->
          <!-- inherit view "view_partner_form" -->
          <record id="view_partner_form_inherit" model="ir.ui.view">
              <!-- name is whatever you like -->
              <field name="name">view.partner.inherit</field>
              <!-- this model field is the original model -->
              <field name="model">res.partner</field>
              <!-- this inherit_id value is get by "external id" from debug mode view form -->
              <field name="inherit_id" ref="base.view_partner_form"/>
              <field name="arch" type="xml">
                  <xpath expr="//page[@name='sales_purchases']//field[@name='user_id']" position="attributes">
                      <!-- remove default label -->
                      <attribute name="nolabel">1</attribute>
                  </xpath>
                  <xpath expr="//page[@name='sales_purchases']//field[@name='user_id']" position="before">
                      <!-- set div, so it show in the same line -->
                      <div>
                          <!-- add new label based on condition -->
                          <label string="Label 1" attrs="{'invisible':[('partner_id', '=', False)]}" for="user_id"/>
                          <label string="Label 2" attrs="{'invisible':[('partner_id', '!=', False)]}" for="user_id"/>
                      </div>
                  </xpath>
              </field>
          </record>
      </odoo>
      

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-12
        • 1970-01-01
        • 1970-01-01
        • 2020-12-15
        • 1970-01-01
        • 2018-07-31
        相关资源
        最近更新 更多