1

Web サイトの設定メニューを継承しようとしていて、2 つのビューがあります。website.config.settings は models.TransientModel です

それを継承して新しいメニューアイテムで表示すると、以前のビューが上書きされます。同様に - 現在 2 つのビューがあり、私が定義した新しいレコードは Website Event Settings という名前です。それをクリックすると、新しい変更されたビューが読み込まれますが、既存の [設定] メニューをクリックしても何も表示されません。

要約すると、既存の Web サイト設定メニューは機能せず、新しいメニューは機能します。両方必要です。

私が使用した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"/>
4

2 に答える 2

2

モジュールの名前を変更する (リレーショナル エラーが発生する) 代わりに、回避策を見つけました。メイン設定を継承し、そこにビュー 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"/>

次に、記録アクションを呼び出し、ビューとアクションをロードしました。もう 1 つのキャッチ ポイントは、特定の Web サイトの値を表示するために website_id を表示する必要があったことです。そうしないと、一時的なモデルが常に空になります。

于 2016-11-13T17:14:18.040 に答える
1

モデル定義の_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

于 2016-11-13T11:59:02.667 に答える