2017-04-09 44 views
0

我想在Odoo9创建一个选择栏。我可以添加一个项目,但它不保存名称只是创建它的用户的名称。Odoo许多2个多选择域

enter image description here

我model.py看起来像

from openerp import models, api, fields 

class ComputerItems(models.Model): 
    _name = "notebook" 
    items_computer = fields.Char("Items") 
    ds_items = fields.Char("Items") 


class ds_repair(models.Model): 

    _name = "ds.repair" 
    x_partner_id = fields.Many2one('res.partner', 'Client', required=True) 
    other = fields.Char("Other", size=128) 
    items = fields.Many2many('notebook', 
          'ds_items', string='Items') 

我model.xml

<record id="view_ds_repair_form" model="ir.ui.view"> 
     <field name="name">ds.repair.form</field> 
     <field name="model">ds.repair</field> 

     <field name="arch" type="xml"> 
      <form string="Repairs"> 

      <sheet> 
      <div class="oe_title"> 
       <label for="name" class="oe_edit_only"/> 
       <group colspan="4" col="6"> 
       <h1><field name="x_partner_id" placeholder="Customer Name"/></h1> 
       <field name="create_date"/> 

       <h2>Priority<field name="priority"/></h2> 

       </group> 
       <group colspan="4" col="6"> 
         <field name="computer_make"/> 
        <field name="password" colspan="2"/> 
        <field name="items"/> 
       </group> 

      </div> 

回答

1

当您不产生任何树,你的模型odoo会为它创建一个costum树:

首先,他将检查属性_rec_name的.rec_name包含代表字段的名称值记录默认为_rec_name = "name",所以odoo会查找名为name的字段(如果存在),odoo会创建一个带有一个字段的树。但是就像在你的情况下你的模型没有一个名字为odoo的字段将会创建一个create_uid的树。为了告诉odoo从另一个字段创建树更改_rec_name的价值

class ModelClass(models.Model): 
    _name ="model.name" 
    _rec_name = "field_name" 

    field_name = fields..... 

这是件好事,当你的模型只有一个领域,但是当你的模型有一个以上的领域,你有两个选择

如果你的模型只需要一棵树,所有类的用法为它创建了一棵树,odoo总是会调用它

如果你的模型可以有不同势many2many或one2many场多树,你可以这样做:

<field name="x2many_field_name" > 
    <tree> 
     <!-- your field here --> 
    </tree> 
<form> 
    <!-- costum form here --> 
</form> 
</field> 

,如果你想使用many2many_tags小部件,你需要指定_rec_name

_rec_name = "field_name" 

<field name="x2many_field_name" widget="many2many_tags" /> 
+0

由于谢里夫帮助很大。 – user2379186

+0

你欢迎^^跳这对你有帮助 – Cherif

0

只要改变像下面的字段'项目'

<field name="items" widget="many2many_tags"/>