Odoo 多 2 多 选择字段

Odoo Many 2 Many Selection field

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

我的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>

字段'items'

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

当你没有为你的模型创建任何树时,odoo 会为它创建一个 costum 树:

首先他会检查属性值 _rec_name .rec_name 默认包含代表记录的字段名称 _rec_name = "name" 所以 odoo 会寻找一个名为name 如果存在,odoo 将创建一棵只有一个字段的树。但是就像你的情况一样,你的模型没有名为 name 的字段,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" />