如何检查字段'包含'Odoo中的值

时间:2017-07-17 11:52:39

标签: odoo odoo-10

我正在尝试为用户提供访问权限,这些用户是给定类别的观看者。

docker build -t my-registry/<username>/<image>:<version> .
docker login my-registry
docker push <image>

尝试没有成功,我得到了:

    <record id="rule_cost_centre_viewer" model="ir.rule">
        <field name="name">Access for the records for a cost_centre's viewer</field>
        <field name="model_id" ref="model_example_module"/>
        <field name="domain_force">[('user_id', 'in', category.viewers.ids)]</field>
        <field name="groups" eval="[(4,ref('group_example_module_user'))]"/>
    </record>

为了清楚起见:

ValueError: <type 'exceptions.NameError'>: "name 'category' is not defined" while u"[('user_id', 'in', category.viewers.ids)]"

这里有什么问题?

也许有可能检查。

class Example(models.Model):
    _name = 'example.module'
    category = fields.Many2one('example.category', 'Category')

class Category(models.Model):
    _name = 'example.category'
    name = fields.Char('Category')
    viewers = fields.Many2many('res.users', 'example_category_rel', 'user_id', 'viewer_id', 'Viewers')

因为另一种方式不起作用?..

1 个答案:

答案 0 :(得分:3)

应该是:

<field name="domain_force">[('category.viewers', '=', user.id)]</field>

也许这个解决方案有点尴尬,但它有效。回答了类似的问题here

并尝试保留Odoo的命名字段指南:category_idviewer_ids等。