我正试图在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')My 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>发布于 2017-04-10 07:07:21
当您不为您创建任何树时,odoo将为其创建一个树:
首先,他将检查属性_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" />发布于 2017-04-10 04:17:17
只需像下面这样更改字段“项目”
<field name="items" widget="many2many_tags"/>https://stackoverflow.com/questions/43310410
复制相似问题