用户登录 Odoo 8/9 后如何更改 header URL?

How to change header URL after user logged in in Odoo 8/9?

我正在 Odoo 9 上制作网站,扩展网站和网络模块,并创建自定义主题。我在网站的 header 中添加了一些页面,其中之一是登录页面,用户可以在其中登录我的网站。

我的问题是,当用户登录时,"Sign In" 仍然存在,我希望将其更改为 "My Profile" 页面,以便用户处理其配置文件设置。

如何检查用户是否已登录并更改 header 中的元素?

网站模块不是已经有登录页了吗?无论如何,你可以继承website.layout来自定义网站菜单,试试这个:

<template id="custom_sign_in" customize_show="True" inherit_id="website.layout" name="Custom Sign In">
    <xpath expr="//ul[@id='top_menu']" position="inside">
        <li groups="base.group_public">
            <a t-attf-href="/web/YourSignInPage">
                <b>Custom Sign in</b>
            </a>
        </li>
        <li t-if="website.user_id != user_id">
            <a t-attf-href="/web/YourAccountPage">
                <b>Custom Account</b>
            </a>
        </li>
    </xpath>
</template>

我正在使用 odoo 8,不确定它是否适合 odoo 9,如果它不起作用请告诉我。

我的解决方案很像@SDBot 之一:

<template id="custom_header" inherit_id="website.layout" name="Custom Header">
    <xpath expr="//div[@id='wrapwrap']/header" position="attributes">
        <attribute name="id">my_header</attribute>
    </xpath>

    <xpath expr="//ul[@class='nav navbar-nav navbar-right']/li" position="before">
        <t t-if="user_id.partner_id.name == 'Public user'">
            <li>
                <a href="/page/website.signin">
                <span data-oe-model="website.menu" data-oe-id="3" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">SignUp</span>
                </a>
            </li>
        </t>
        <t t-if="not user_id.partner_id.name == 'Public user'">
            <li>
                <a href="/page/website.profile">
                <span data-oe-model="website.menu" data-oe-id="3" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">My Profile</span>
                </a>
            </li>
        </t>
    </xpath>
</template>