Odoo许多2选择领域

时间:2017-04-09 18:31:57

标签: python python-2.7 openerp odoo-9

我正在尝试在Odoo9中创建一个选择字段。我可以添加一个项目,但它不会仅保存名称创建它的用户的名称。

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>

2 个答案:

答案 0 :(得分: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" />

答案 1 :(得分:0)

只需更改字段'items'

,如下所示
 <field name="items" widget="many2many_tags"/>