Odoo 13 - 同一模块中的多个模型和菜单
Odoo 13 - multiple model and menus in same module
我是 odoo 的新手,正在学习开发自定义模块。尝试为公司和个人开发联系人管理应用程序。以下是文件和代码结构:
#models.py
from odoo import models, fields, api
class company(models.Model):
_name = 'cs_contact.company'
_description = 'Model for create company profile.'
name = fields.Char('Company name', required=True)
country_id = fields.Many2one('res.country', string='Country', help='Select Country', ondelete='restrict', required=True)
ho_address = fields.Text('HO address')
website = fields.Char('Website')
courier_account = fields.Char('Courier Account')
email = fields.Char('Email')
class person(models.Model):
_name = 'cs_contact.person'
_description = 'Model for create person contact.'
name = fields.Char('Full Name', required=True)
country_id = fields.Many2one('res.country', string='Country', help='Select Country', ondelete='restrict', required=True)
email = fields.Char('Email')
im_id = name = fields.Char('Instant messaging ID (Skype/line)')
worked_before = fields.Selection([
('Yes', 'Yes'),
('No', 'No'),
], string="Worked Before?")
how_we_meet = fields.Selection([
('Fair', 'Fair'),
('Email', 'Email'),
('Agent', 'Agent'),
], string="How we meet?")
quantity = fields.Integer(string='Quantity')
note = fields.Text('Note')
观看次数类似于:
#views.xml
<odoo>
<data>
<!-- explicit list view definition -->
<record model="ir.ui.view" id="cs_contact.list">
<field name="name">cs_contact list</field>
<field name="model">cs_contact.person</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="country_id" />
<field name="email"/>
</tree>
</field>
</record>
<record id="view_cs_contactsearch" model="ir.ui.view">
<field name="name">cs_contact list</field>
<field name="model">cs_contact.person</field>
<field name="arch" type="xml">
<search string="Search contacts">
<field name="name"></field>
<field name="country_id"></field>
<field name="email"></field>
</search>
</field>
</record>
</data>
</odoo>
菜单如下:
#menu.xml
<odoo>
<act_window id="action_company" name=" Company Contacts" res_model="cs_contact.company" view_mode="tree,form" />
<menuitem id="contact_root" name="Contacts" sequence='-1' />
<menuitem id="contact_company" name="Company" parent="contact_root" action="action_company" sequence="-1" />
</odoo>
公司联系人工作正常。现在我不知道如何为人员创建顶级菜单并定义视图。 This is the the design I want。我尝试了博客中的各种方法,但没有用。请帮帮我。
您已在 cs_contact.person
视图定义中添加了 country_id
,但该字段不存在。将其从视图定义中移除或在相应模型中声明。
要在 Company
菜单项旁边添加 Person
菜单项,您只需使用相同的父级和更高的序列号,然后将其连接到相应的 action。
示例:
<act_window id="action_person" name="Persons" res_model="cs_contact.person" view_mode="tree,form"/>
<menuitem id="contact_person" name="Person" parent="contact_root" action="action_person" sequence="2"/>
我是 odoo 的新手,正在学习开发自定义模块。尝试为公司和个人开发联系人管理应用程序。以下是文件和代码结构:
#models.py
from odoo import models, fields, api
class company(models.Model):
_name = 'cs_contact.company'
_description = 'Model for create company profile.'
name = fields.Char('Company name', required=True)
country_id = fields.Many2one('res.country', string='Country', help='Select Country', ondelete='restrict', required=True)
ho_address = fields.Text('HO address')
website = fields.Char('Website')
courier_account = fields.Char('Courier Account')
email = fields.Char('Email')
class person(models.Model):
_name = 'cs_contact.person'
_description = 'Model for create person contact.'
name = fields.Char('Full Name', required=True)
country_id = fields.Many2one('res.country', string='Country', help='Select Country', ondelete='restrict', required=True)
email = fields.Char('Email')
im_id = name = fields.Char('Instant messaging ID (Skype/line)')
worked_before = fields.Selection([
('Yes', 'Yes'),
('No', 'No'),
], string="Worked Before?")
how_we_meet = fields.Selection([
('Fair', 'Fair'),
('Email', 'Email'),
('Agent', 'Agent'),
], string="How we meet?")
quantity = fields.Integer(string='Quantity')
note = fields.Text('Note')
观看次数类似于:
#views.xml
<odoo>
<data>
<!-- explicit list view definition -->
<record model="ir.ui.view" id="cs_contact.list">
<field name="name">cs_contact list</field>
<field name="model">cs_contact.person</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="country_id" />
<field name="email"/>
</tree>
</field>
</record>
<record id="view_cs_contactsearch" model="ir.ui.view">
<field name="name">cs_contact list</field>
<field name="model">cs_contact.person</field>
<field name="arch" type="xml">
<search string="Search contacts">
<field name="name"></field>
<field name="country_id"></field>
<field name="email"></field>
</search>
</field>
</record>
</data>
</odoo>
菜单如下:
#menu.xml
<odoo>
<act_window id="action_company" name=" Company Contacts" res_model="cs_contact.company" view_mode="tree,form" />
<menuitem id="contact_root" name="Contacts" sequence='-1' />
<menuitem id="contact_company" name="Company" parent="contact_root" action="action_company" sequence="-1" />
</odoo>
公司联系人工作正常。现在我不知道如何为人员创建顶级菜单并定义视图。 This is the the design I want。我尝试了博客中的各种方法,但没有用。请帮帮我。
您已在 cs_contact.person
视图定义中添加了 country_id
,但该字段不存在。将其从视图定义中移除或在相应模型中声明。
要在 Company
菜单项旁边添加 Person
菜单项,您只需使用相同的父级和更高的序列号,然后将其连接到相应的 action。
示例:
<act_window id="action_person" name="Persons" res_model="cs_contact.person" view_mode="tree,form"/>
<menuitem id="contact_person" name="Person" parent="contact_root" action="action_person" sequence="2"/>