如何在XML Odoo V11中获取当前(已记录)用户?

问题描述 投票:0回答:2

我正在使用odoo11中的Employee Directory模块,如果他与相关用户不同,我想设置一个对当前用户(Logged用户)不可见的笔记本页面。

我试图在XML中使用user.id但它不起作用。

这是我的代码:

<page name="hr_settings" string="HR Settings" attrs="{'invisible':[('user_id', '!=', user.id)]}">
    <group>
        <group string='Status' name="active_group">
            <field name="company_id"/>
                <field name="user_id" string="Related User"/>
            </group>
        </group>
    </page>

错误消息:

<class 'NameError'>: "name 'user' is not defined" while evaluating

"{'invisible': [('user_id', '!=', user.id)]}"

None" while parsing /opt/odoo/odoo/my_addons/hr_dz/views/employee_views.xml:5, near

<record id="view_employee_form" model="ir.ui.view">

<field name="name">hr.employee.form</field>

请问有什么想法吗?

odoo-11
2个回答
2
投票

我知道在场地中使用场地的其中一项必须在表格中提及。我不知道如何在表单中获取用户ID的值。但是如果没有像uid或用户这样的简短方法你可以在这周围工作,只需创建一个m2o字段来res.users使用store = False创建这个字段计算字段。

请尝试这对你有用:

# by default store = False this means the value of this field
# is always computed.
current_user = fields.Many2one('res.users', compute='_get_current_user')

@api.depends()
def _get_current_user(self):
    for rec in self:
        rec.current_user = self.env.user
    # i think this work too so you don't have to loop
    self.update({'current_user' : self.env.user.id})

并且您可以在表单中使用此字段。

<page name="hr_settings" string="HR Settings" attrs="{'invisible':[('user_id', '=', current_user)]}">
    <group>
        <group string='Status' name="active_group">
            <field name="company_id"/>
            <field name="user_id" string="Related User"/>
        </group>
    </group>
</page>

1
投票

在您的情况下,基本上我们可以在视图级别直接使用uid全局表达式变量。

uid也用于odoo xml视图文件中的表达式求值

<page name="hr_settings" string="HR Settings" attrs="{'invisible':[('user_id', '!=', uid)]}">
    <group>
        <group string='Status' name="active_group">
            <field name="company_id"/>
                <field name="user_id" string="Related User"/>
            </group>
        </group>
    </page>

无需为代码添加和创建任何计算字段。

请参阅Odoo V11插件下面的视图

插件/项目/ project_view.xml。

© www.soinside.com 2019 - 2024. All rights reserved.