2016-11-04 99 views
1
<group> 
     <field name="tax_id" widget="many2many_tags" domain="[('type_tax_use','=','sale'),('company_id','=',parent.company_id)]" 
      attrs="{'readonly': [('qty_invoiced', '&gt;', 0)]}"/> 
     <label for="customer_lead"/> 
     <div> 
      <field name="customer_lead" class="oe_inline"/> days 
     </div> 
     <label for="analytic_tag_ids"/> 
     <div> 
      <field name="analytic_tag_ids" widget="many2many_tags"/> 
     </div> 
    </group> 
</group> 
############WANT TO INSERT HERE 
<label for="name"/> 
<field name="name"/> 
<div groups="base.group_no_one"> 
    <label for="invoice_lines"/> 
    <field name="invoice_lines"/> 
</div> 
<field name="state" invisible="1"/> 

如何使用Odoo 10 Xpath的

這在sale_view.xml

我已經試過

xpath expr="//label[@for='name'//field name='name']" position='before' 

找到特定的路徑,也嘗試過其他各種路徑和完整路徑過於

/odoo/record[7]/field[3]/form/sheet/notebook/page[1]/field[1]/form/group 

/odoo/record[7]//form[2]/group 

我不明白爲什麼它不能找到這條道路,爲什麼不接受一個字符串作爲選擇。

編輯:

<record id="view_order_form" model="ir.ui.view"> 
    <field name="model">sale.order</field> 
    <field name="inherit_id" ref="sale.view_order_form"/> 
    <field name="arch" type="xml"> 
     <xpath expr="//form//form//label[@for='name']" position="before"> 
     <div groups="base,group_no_one"> 
      <label for="l_ids"/> 
      <field name="l_ids"/> 
     </div> 
     </xpath> 
     <field name="partner_id" position="after"> 
     <button name="abc" string="abc" type="object" 
       class="oe_inline fa fa-arrow-right oe_link"/> 
     </field> 
    </field> 
    </record> 

這是錯誤:

Error context: 
View `sale.order form` 
[view_id: 687, xml_id: promo.view_order_form, model: sale.order, parent_id: 508] 
2016-11-07 06:43:03,556 22642 CRITICAL odoo10 odoo.service.server: Failed to initialize database `odoo10`. 
Traceback (most recent call last): 
    File "/home/maharshi/workspace/odoo-10.0/odoo/service/server.py", line 898, in preload_registries 
    registry = Registry.new(dbname, update_module=update_module) 
    File "/home/maharshi/workspace/odoo-10.0/odoo/modules/registry.py", line 78, in new 
    odoo.modules.load_modules(registry._db, force_demo, status, update_module) 
    File "/home/maharshi/workspace/odoo-10.0/odoo/modules/loading.py", line 333, in load_modules 
    force, status, report, loaded_modules, update_module) 
    File "/home/maharshi/workspace/odoo-10.0/odoo/modules/loading.py", line 235, in load_marked_modules 
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks) 
    File "/home/maharshi/workspace/odoo-10.0/odoo/modules/loading.py", line 177, in load_module_graph 
    env['ir.ui.view']._validate_module_views(module_name) 
    File "/home/maharshi/workspace/odoo-10.0/odoo/addons/base/ir/ir_ui_view.py", line 1171, in _validate_module_views 
    self.raise_view_error("Can't validate view:\n%s" % (e.message or repr(e)), vid) 
    File "/home/maharshi/workspace/odoo-10.0/odoo/addons/base/ir/ir_ui_view.py", line 445, in raise_view_error 
    raise ValueError(message) 
ValueError: Can't validate view: 
External ID must be fully qualified 

Error context: 
View `sale.order form` 

這是最讓我曾嘗試使用路徑的問題。

+0

你的div組是錯誤的。它應該是「base.group_no_one」。 – CZoellner

+0

是的!謝謝 ! – maharshi

回答

3

它應該是:

<label for="name" position="before"> 
    <!-- your xml here --> 
</label> 

<xpath expr="//form//form//label[@for='name']" position="before"> 
    <!-- your xml here --> 
</xpath> 

編輯

record應該是這個樣子:

<record id="view_order_form" model="ir.ui.view"> 
    <field name="name">my.sale.order.form</field> 
    <field name="model">sale.order</field> 
    <field name="inherit_id" ref="sale.view_order_form" /> 
    <field name="arch" type="xml"> 
     <!-- one of the above here --> 
    </field> 
</record 
+0

已經嘗試過兩種方法......它說第一個「外部ID必須是完全限定的」,而第二個則不能找到路徑。 – maharshi

+0

你可以給我們在你的問題的完整XML記錄?也許在任何地方都有其他錯誤。 – CZoellner

+0

是的,我編輯了這個問題,並添加了xml記錄和錯誤引用。 – maharshi