继承 TransientModel 并有两个视图 ( website.config.settings )
Inherit TransientModel and have two views ( website.config.settings )
我正在尝试继承网站设置菜单并有两个视图。 website.config.settings 是一个 models.TransientModel
当我继承它并使用新的菜单项查看时,它会覆盖以前的视图。喜欢 - 现在有两个视图,我定义的新记录名为 Website Event Settings 。当我点击它时,它会加载新的修改视图,但是当我点击现有的设置菜单时,它什么也不显示。
总而言之,现有的网站设置菜单不起作用,而新菜单可以。我两个都需要。
我使用的py代码和记录视图如下-
class cofair_website_design_config(models.TransientModel):
_name = 'website.config.settings'
_inherit = 'website.config.settings'
event_title = fields.Char(related='website_id.event_title', string='Event Title')
XML:
<record id="view_website_event_config_settings" model="ir.ui.view">
<field name="name">Website Event Settings</field>
<field name="model">website.config.settings</field>
<field name="arch" type="xml">
<form class="oe_form_configuration">
<header>
<button string="Apply" type="object" name="execute" class="oe_highlight"/>
<button string="Cancel" type="object" name="cancel" class="oe_link"/>
</header>
<div>
<group string="Event Page Section">
<group>
<field name="event_title_color"/>
</group>
</group>
</div>
</form>
</field>
</record>
<record id="action_website_event_configuration" model="ir.actions.act_window">
<field name="name">Website Event Settings</field>
<field name="res_model">website.config.settings</field>
<field name="view_mode">form</field>
<field name="target">inline</field>
<field name="view_id" ref="view_website_event_config_settings"/>
</record>
<menuitem id="menu_website_event_settings" parent="website.menu_website_configuration" name="Website Event Settings" action="action_website_event_configuration"/>
将模型定义中的 _name
属性更改为其他内容,并适当修改 xml。
class cofair_website_design_config(models.TransientModel):
_name = 'something.else'
_inherit = 'website.config.settings'
event_title = fields.Char(related='website_id.event_title', string='Event Title')
ir.ui.view
<field name="model">something.else</field>
和 ir.actions.act_window
<field name="res_model">something.else</field>
这应该将所有字段和方法从 website.config.settings
复制到新模型 something.else
并将其与 website.config.settings
分开
我没有重命名模块(这会导致关系错误),而是找到了解决方法。我继承了主要设置并在那里放置了一个视图 ID 并使用 menuitem -
调用它
<!-- Bring settings menu out -->
<record id="website.action_website_configuration" model="ir.actions.act_window">
<field name="name">Website Settings</field>
<field name="res_model">website.config.settings</field>
<field name="view_mode">form</field>
<field name="target">inline</field>
<field name="view_id" ref="website.view_website_config_settings"/>
</record>
<menuitem id="website.menu_website_website_settings" parent="website.menu_website_configuration" name="Website Admin" action="website.action_website_configuration"/>
然后我调用了记录操作,它加载了视图和操作。另一个要点是我必须显示 website_id 以显示特定网站的值,否则瞬态模型将始终为空。
我正在尝试继承网站设置菜单并有两个视图。 website.config.settings 是一个 models.TransientModel
当我继承它并使用新的菜单项查看时,它会覆盖以前的视图。喜欢 - 现在有两个视图,我定义的新记录名为 Website Event Settings 。当我点击它时,它会加载新的修改视图,但是当我点击现有的设置菜单时,它什么也不显示。
总而言之,现有的网站设置菜单不起作用,而新菜单可以。我两个都需要。
我使用的py代码和记录视图如下-
class cofair_website_design_config(models.TransientModel):
_name = 'website.config.settings'
_inherit = 'website.config.settings'
event_title = fields.Char(related='website_id.event_title', string='Event Title')
XML:
<record id="view_website_event_config_settings" model="ir.ui.view">
<field name="name">Website Event Settings</field>
<field name="model">website.config.settings</field>
<field name="arch" type="xml">
<form class="oe_form_configuration">
<header>
<button string="Apply" type="object" name="execute" class="oe_highlight"/>
<button string="Cancel" type="object" name="cancel" class="oe_link"/>
</header>
<div>
<group string="Event Page Section">
<group>
<field name="event_title_color"/>
</group>
</group>
</div>
</form>
</field>
</record>
<record id="action_website_event_configuration" model="ir.actions.act_window">
<field name="name">Website Event Settings</field>
<field name="res_model">website.config.settings</field>
<field name="view_mode">form</field>
<field name="target">inline</field>
<field name="view_id" ref="view_website_event_config_settings"/>
</record>
<menuitem id="menu_website_event_settings" parent="website.menu_website_configuration" name="Website Event Settings" action="action_website_event_configuration"/>
将模型定义中的 _name
属性更改为其他内容,并适当修改 xml。
class cofair_website_design_config(models.TransientModel):
_name = 'something.else'
_inherit = 'website.config.settings'
event_title = fields.Char(related='website_id.event_title', string='Event Title')
ir.ui.view
<field name="model">something.else</field>
和 ir.actions.act_window
<field name="res_model">something.else</field>
这应该将所有字段和方法从 website.config.settings
复制到新模型 something.else
并将其与 website.config.settings
我没有重命名模块(这会导致关系错误),而是找到了解决方法。我继承了主要设置并在那里放置了一个视图 ID 并使用 menuitem -
调用它<!-- Bring settings menu out -->
<record id="website.action_website_configuration" model="ir.actions.act_window">
<field name="name">Website Settings</field>
<field name="res_model">website.config.settings</field>
<field name="view_mode">form</field>
<field name="target">inline</field>
<field name="view_id" ref="website.view_website_config_settings"/>
</record>
<menuitem id="website.menu_website_website_settings" parent="website.menu_website_configuration" name="Website Admin" action="website.action_website_configuration"/>
然后我调用了记录操作,它加载了视图和操作。另一个要点是我必须显示 website_id 以显示特定网站的值,否则瞬态模型将始终为空。