我正在尝试在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>
答案 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"/>