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

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

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 新手求助
  4. odoo res.currency

odoo res.currency

已定时 已固定 已锁定 已移动 Odoo 新手求助
11 帖子 3 发布者 6.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 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
      • JoshuaJ Joshua

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

        H 离线
        H 离线
        hui
        发表于 最后由 编辑
        #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
          • H hui

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

            S 离线
            S 离线
            Siyuan
            发表于 最后由 编辑
            #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
            • JoshuaJ Joshua

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

              active = fields.Boolean(default=True)
              
              H 离线
              H 离线
              hui
              发表于 最后由 编辑
              #6

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

              1 条回复 最后回复
              0
              • S Siyuan

                @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 离线
                H 离线
                hui
                发表于 最后由 编辑
                #7

                @siyuan

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

                S 1 条回复 最后回复
                0
                • H hui

                  @siyuan

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

                  S 离线
                  S 离线
                  Siyuan
                  发表于 最后由 编辑
                  #8

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

                  H 1 条回复 最后回复
                  0
                  • S Siyuan

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

                    H 离线
                    H 离线
                    hui
                    发表于 最后由 编辑
                    #9

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

                    S 1 条回复 最后回复
                    0
                    • H hui

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

                      S 离线
                      S 离线
                      Siyuan
                      发表于 最后由 编辑
                      #10

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

                      H 1 条回复 最后回复
                      0
                      • S Siyuan

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

                        H 离线
                        H 离线
                        hui
                        发表于 最后由 编辑
                        #11

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

                        1 条回复 最后回复
                        0

                        你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

                        厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

                        有了你的建议,这篇帖子会更精彩哦 💗

                        注册 登录
                        回复
                        • 在新帖中回复
                        登录后回复
                        • 从旧到新
                        • 从新到旧
                        • 最多赞同


                        • 登录

                        • 没有帐号? 注册

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