Many2one多对一关系
一个属性只能有一个类型,但是同一种类型可以分配给多个属性。例如一个班有多个学生,只有一个班主任。Many2one是一个简单的链接到另一个对象。
我们定义一个模型并且添加字段。
class partner_model(models.Model):
_name = 'partner.model'
_description = '模型类型'
name = fields.Char('模型名称类型', required=True)
创建视图、把字段添加到视图里面。
<record id="odoo_form_partner_model" model="ir.ui.view">
<field name="name">partner.model.form</field>
<field name="model">partner.model</field>
<field name="arch" type="xml">
<form string="表单">
<sheet>
<group>
<group>
<field name="name" />
</group>
<group>
</group>
</group>
<group>
</group>
</sheet>
</form>
</field>
</record>
<record id="odoo_tree_partner_model" model="ir.ui.view">
<field name="name">partner.model.tree</field>
<field name="model">partner.model</field>
<field name="priority">1</field>
<field name="arch" type="xml">
<tree string="列表">
<field name="name" />
</tree>
</field>
</record>
<record id="odoo_action_partner_model" model="ir.actions.act_window">
<field name="name">测试模型类型</field>
<field name="res_model">partner.model</field>
<field name="view_mode">tree,form</field>
</record>
将字段添加到你的模型及其表单、树、视图中
partner_id = fields.Many2one("partner.model", string="Partner")
<record id="odoo_form_traceability" model="ir.ui.view">
<field name="name">traceability.form</field>
<field name="model">traceability</field>
<field name="arch" type="xml">
<form string="表单">
<sheet>
<search string="搜索">
<field name="name"/>
</search>
<group>
<group>
<field name="name" />
<field name="number" />
<field name="template_if" />
<field name="describe" />
<field name="tag_ids" />
</group>
<group>
<field name="product_category" />
<field name="date" />
<field name="photo" />
<field name="state" />
<field name="partner_id" />
</group>
</group>
<group>
</group>
<notebook colspan="4">
<page string="产品意见" autofocus="autofocus">
<field name="product_advice">
<tree string="列表">
<field name="proposal" required="True"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="odoo_tree_traceability" model="ir.ui.view">
<field name="name">traceability.tree</field>
<field name="model">traceability</field>
<field name="priority">1</field>
<field name="arch" type="xml">
<tree string="列表">
<field name="name" />
<field name="number" />
<field name="date" />
<field name="tag_ids" />
</tree>
</field>
</record>
<record id="odoo_action_traceability" model="ir.actions.act_window">
<field name="name">产品追溯系统软件</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">traceability</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
创建单据.
</p>
</field>
</record>
<menuitem action="odoo_action_traceability" id="menu_traceability" sequence="0"/>
别忘记给模型添加权限!
因为修改了python文件,我们需要重新启动服务器。这里可以新建类型。
欢迎加群一起讨论DTCloud 4实施开发。
群号:557402829