【问题标题】:Restrict Access of A Product based on few criterias根据几个标准限制对产品的访问
【发布时间】:2012-07-05 17:27:42
【问题描述】:

目标: 向所有有权访问购买模块的用户显示所有产品。 但是除了上面的规则只向创建相同产品的用户显示在参考字段中具有值“secfab”的产品。

问题: 我尝试使用访问记录,但构建它的逻辑很弱,我需要帮助。

案例 1: [('default_code','!=','secfab'),('created_id','=',user.id)]

如果我对此进行编码,那么我只会得到一条记录,而其他记录则不会显示。

案例 2: ['|',('default_code','!=','secfab'),('created_id','=',user.id)]

如果我对此进行编码,那么我只会记录所有记录,而我无法获得我想要的隐私。

任何帮助将不胜感激。

【问题讨论】:

    标签: openerp


    【解决方案1】:

    您的第二种情况似乎是正确的,除了过滤创建者的子句看起来拼写错误。此拼写错误可能会导致规则匹配所有记录,因为无法验证不存在字段 created_id 的条件。不应该是:

    ['|', ('default_code', '!=', 'secfab'), ('create_uid', '=', user.id)]
    

    翻译为“显示所有没有 secfab 代码的产品,以及用户创建的所有产品,不管他们的代码是什么”,并且似乎做你想做的事?

    create_uid是系统自动添加到所有_log_access设置为True的模型的4个字段之一,这是默认值。这在OpenERP technical mementospecial fields documentation 中有解释。

    【讨论】:

    • 上述解决方案有一个小问题,导致其他产品未列出,因此此解决方案有效 ['|','|',('default_code','=',False),('default_code' ,'!=','secfab'),('create_uid','=',user.id)]
    猜你喜欢
    • 2019-03-23
    • 2021-08-27
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多