Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

Function字段作为action的domain,不起效果?



  • <record model="ir.actions.act_window" id="users_list_action"><br />            <field eval="1" name="sequence"/><br />            <field name="name">员工管理</field><br />            <field name="res_model">res.users</field><br />            <field name="domain">[('is_company','=',True)]</field><br />            <field name="view_type">form</field><br />            <field name="view_mode">tree,form</field><br />        </record><br />is_company 是一个function字段,但是放到这里没用,请问怎么能有用!!<br />



  • <record model="ir.actions.act_window" id="users_list_action"><br />            <field eval="1" name="sequence"/><br />            <field name="name">员工管理</field><br />            <field name="res_model">res.users</field><br />            <field name="domain">[('is_company','=',True)]</field><br />            <field name="view_type">form</field><br />            <field name="view_mode">tree,form</field><br />        </record><br />is_company 是一个function字段,但是放到这里没用,请问怎么能有用!!<br />


  • 管理员

    你的function字段只有设置了strore=True 或者定义了search方法才可以用来筛选。



  • 默认的function字段是不存储数据库的,如果想在domain中使用的字段,是需要存储到数据库的



  • 如果,设置了store的话,它会存到数据库,那么当几个用户同时需要这个字段的话,是不是会有冲突??


  • 管理员

    @佳先生Function字段作为action的domain,不起效果? 中说:

    如果,设置了store的话,它会存到数据库,那么当几个用户同时需要这个字段的话,是不是会有冲突??

    @佳先生 你是指如果多个其他字段的值会影响到这个函数字段的值吗?

    函数字段所对应的函数是可以加 装饰器@api.depends('field1', 'model_id.field2', ...) 的,
    这样即使用了store=True,数据保存到了数据库,当depends对应的字段数据发生变化时,系统是会自动重算,更新数据库的值的。



  • @digitalsatori 恩,depends的话是根据字段变化进行计算的,而我需要进入列表视图过滤的时候进行计算,不是字段变化,所以有点不一样,而且多个用户同时使用,function类型的话,加了store就不会实时进行计算,会去拿数据库存的数据,那么多个用户拿到的数据是一样的,就会影响过滤结果。



  • @佳先生Function字段作为action的domain,不起效果? 中说:

    @digitalsatori 恩,depends的话是根据字段变化进行计算的,而我需要进入列表视图过滤的时候进行计算,不是字段变化,所以有点不一样,而且多个用户同时使用,function类型的话,加了store就不会实时进行计算,会去拿数据库存的数据,那么多个用户拿到的数据是一样的,就会影响过滤结果。

    个人理解哈,错了的话,欢迎纠正!


  • 管理员

    理论上不会因为有多个用户的存在而改变函数字段的计算结果,函数字段的计算结果只与其依赖相关的字段的值的变化而变化。

    其实正如 @Joshua 说过的,你也可以不必使用store=true,只要在字段定义时使用一个对应的search方法,比如 search='my_search_method' ,这个search方法可以解析你在action中传入的domain并返回结果集就可以了。



  • @digitalsatoriFunction字段作为action的domain,不起效果? 中说:

    my_search_method

    这个之前没怎么用,我先试一下。


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待