在用户视图中添加ManyTomany列表(Odoo 12)

时间:2019-09-23 21:46:13

标签: python odoo odoo-12

这是用例:

  • 允许某些用户根据其权限访问特定预算。

逻辑:

  • 我在两个模型之间创建了一个多对多关系: crossovered.budget res.users 这些模型如下:

    class res_users(models.Model):
        _inherit = 'res.users'
        budgets = fields.Many2many('crossovered.budget',
                                             string='Budget permissions')
    
    class crossovered_budget(models.Model):
        _inherit = 'crossovered.budget'
        res_users = fields.Many2many('res.users','Users')
    

我已经成功地在两个模型中添加了属性,没有问题,问题是我想修改用户视图以显示并选择每个用户的预算,但是我无法获得窗口小部件(或字段)以表格形式显示,我没有任何错误,并且我的模块安装没有任何问题。

这是视图:

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
    <data>
        <record model="ir.ui.view" id="userscustom">
            <field name="name">Budget list</field>
            <field name="model">res.users</field>
            <field name="secuence">99</field>
            <field name="inherit_id" ref="base.view_users_form"/>
            <field name="mode">primary</field>
            <field name="view_mode">tree,form</field>
                <field name="arch" type="xml">
                <xpath expr="//notebook/page[@name='access_rights']/group" position="after">
                    <group name="rw_budget_group">
                        <field name="budgets" string="Allowed Budgets" widget="many2many_tags" options="{'no_create': True}" />
                    </group>
                </xpath>
            </field>
        </record>
    </data>
</odoo>

据我了解,该组应该添加到XPath中描述的节点之后,我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

Odoo中的视图继承模式可以用modeprimaryextension这两种类型来完成。主mode视图继承会创建一个全新的视图,该视图可以用作单独的视图,而extension(如果未提及则为默认值)会将继承添加到现有视图。可以将继承模式更改为extension,也可以将userscustom视图绑定到新操作以保持原始功能不变。

<field name="mode">extension</field>