跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. Function字段作为action的domain,不起效果?

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

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
10 帖子 4 发布者 9.2k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 佳 离线
    佳 离线
    佳先生
    写于 最后由 编辑
    #1

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

    1 条回复 最后回复
    0
    • J 离线
      J 离线
      Joshua 管理员
      写于 最后由 编辑
      #2

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

      【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

      1 条回复 最后回复
      0
      • 天 离线
        天 离线
        天津-随风
        写于 最后由 编辑
        #3

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

        1 条回复 最后回复
        0
        • 佳 离线
          佳 离线
          佳先生
          写于 最后由 编辑
          #4

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

          1 条回复 最后回复
          0
          • D 离线
            D 离线
            digitalsatori 管理员
            写于 最后由 digitalsatori 编辑
            #5

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

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

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

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

            【上海先安科技】(tony AT openerp.cn)

            佳 1 条回复 最后回复
            1
            • 佳 离线
              佳 离线
              佳先生
              在 回复了 digitalsatori 最后由 佳先生 编辑
              #6

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

              佳 1 条回复 最后回复
              0
              • 佳 离线
                佳 离线
                佳先生
                在 回复了 佳先生 最后由 编辑
                #7

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

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

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

                1 条回复 最后回复
                0
                • D 离线
                  D 离线
                  digitalsatori 管理员
                  写于 最后由 编辑
                  #8

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

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

                  【上海先安科技】(tony AT openerp.cn)

                  佳 1 条回复 最后回复
                  1
                  • 佳 离线
                    佳 离线
                    佳先生
                    在 回复了 digitalsatori 最后由 编辑
                    #9

                    @digitalsatori 在 Function字段作为action的domain,不起效果? 中说:

                    my_search_method

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

                    1 条回复 最后回复
                    0

                    • 登录

                    • 没有帐号? 注册

                    • 登录或注册以进行搜索。
                    • 第一个帖子
                      最后一个帖子
                    0
                    • 版块
                    • 标签
                    • 热门
                    • 用户
                    • 群组