跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. odoo res.currency

odoo res.currency

已定时 已固定 已锁定 已移动 Odoo 新手求助
11 帖子 3 发布者 3.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • H 离线
    H 离线
    hui
    写于 最后由 编辑
    #1
    currency = 'HKD'
    currency_ids = models.execute_kw(db, uid, password, 'res.currency', 'search', [[['name', '=', str(currency)]]])
    

    新建的数据库中货币的active都是False,都是不能在界面看到的,现在想通过查询出当前货币HKD的id,设置它的active为True,这样就能在视图中查看.

    问题:这个查询有时可以查询出结果,有时又没有查询出结果,什么原因啊

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

      不用那么麻烦啊,你直接在高级筛选里面搜索active=False,然后就可以在界面修改他的active值了。

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

      H 1 条回复 最后回复
      0
      • H 离线
        H 离线
        hui
        在 回复了 Joshua 最后由 编辑
        #3

        @joshua
        除了高级筛选可以修改外,代码修改可以做到吗?我现在测试的是,想代码修改active=True,没成功.

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

          你可以设置默认值,那么新建的时候就会是True了。

          active = fields.Boolean(default=True)
          

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

          H 1 条回复 最后回复
          0
          • S 离线
            S 离线
            Siyuan
            在 回复了 hui 最后由 编辑
            #5

            @1234567

            context 里面传: active_test: False

            context 里面的 active_test 是判断要不要过滤掉inactive 字段的一个条件

            def _where_calc(self, cr, user, domain, active_test=True, context=None):
                """Computes the WHERE clause needed to implement an OpenERP domain.
                :param domain: the domain to compute
                :type domain: list
                :param active_test: whether the default filtering of records with ``active``
                                    field set to ``False`` should be applied.
                :return: the query expressing the given domain as provided in domain
                :rtype: osv.query.Query
                """
                if not context:
                    context = {}
                domain = domain[:]
                # if the object has a field named 'active', filter out all inactive
                # records unless they were explicitely asked for
                if 'active' in self._fields and active_test and context.get('active_test', True):
                    if domain:
                        # the item[0] trick below works for domain items and '&'/'|'/'!'
                        # operators too
                        if not any(item[0] == 'active' for item in domain):
                            domain.insert(0, ('active', '=', 1))
                    else:
                        domain = [('active', '=', 1)]
            
            H 1 条回复 最后回复
            0
            • H 离线
              H 离线
              hui
              在 回复了 Joshua 最后由 编辑
              #6

              @joshua
              我只是在视图中需要显示currency这个模型的数据,但是我没有创建这个模型,还是你说的这种改法吗?

              1 条回复 最后回复
              0
              • H 离线
                H 离线
                hui
                在 回复了 Siyuan 最后由 编辑
                #7

                @siyuan

                我只是在视图中需要显示currency这个模型的数据,我不继承这个模型的,还是不太懂您说的这个方法怎么使用?

                S 1 条回复 最后回复
                0
                • S 离线
                  S 离线
                  Siyuan
                  在 回复了 hui 最后由 编辑
                  #8

                  @1234567 在对应视图的action 的context 里面补 active_test: '0'

                  H 1 条回复 最后回复
                  0
                  • H 离线
                    H 离线
                    hui
                    在 回复了 Siyuan 最后由 编辑
                    #9

                    @siyuan
                    那你这样是不是把res.currency模型中的所有数据都显示出来了,如果我只需要显示我用到的,不需要显示全部的呢?

                    S 1 条回复 最后回复
                    0
                    • S 离线
                      S 离线
                      Siyuan
                      在 回复了 hui 最后由 编辑
                      #10

                      @1234567 根据业务逻辑,自己加domain

                      H 1 条回复 最后回复
                      0
                      • H 离线
                        H 离线
                        hui
                        在 回复了 Siyuan 最后由 编辑
                        #11

                        @siyuan
                        哦,谢谢了,我想想怎么实现.

                        1 条回复 最后回复
                        0

                        • 登录

                        • 没有帐号? 注册

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