跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. 字段中domain的用法

字段中domain的用法

已定时 已固定 已锁定 已移动 Odoo 新手求助
7 帖子 3 发布者 4.4k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • H 离线
    H 离线
    hui
    写于 最后由 编辑
    #1

    代码如下:

    class PartOption(models.Model):
        _name = 'part.option'
        parent_id = fields.Many2one('part.option', string='Parent Option')
    
    class RobotProtectionType(models.Model):
        _name = 'robtype'
        _description = 'Rob Type'
      
        option_id = fields.Many2one('part.option', string='Part Option', required=True, domain="[('parent_id','=', False)]")
    

    问题:
    1、在option_id字段中有个domain筛选,domain要表达的含义是parend_id不为空的意思吗?如果是,那么这样表达是否包含了"",None,Null的三种情况?
    2、如果真的需要判断某个字段为假,又怎样用domain表示?

    新人一枚,请大家指教。

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

      问题:
      1、在option_id字段中有个domain筛选,domain要表达的含义是parend_id不为空的意思吗?如果是,那么这样表达是否包含了"",None,Null的三种情况?

      这Domain的意思是part.option这个模型中parent_id为空的记录,如果parent_id是Odoo ORM定义的字段(例如:many2one),要判断该字段是否为空只需要[('fields_xx', '=', False)]

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

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

        @Joshua
        parent_id不是odoo字段,是自定义的类的字段。[('fields_xx', '=', False)]这个跟我代码中的domain="[('parent_id','=', False)]"是一样的吧

        JoshuaJ 1 条回复 最后回复
        0
        • Felix_ChengF 离线
          Felix_ChengF 离线
          Felix_Cheng
          写于 最后由 Felix_Cheng 编辑
          #4

          首先,要分清"", None,Null的含义, 如果是在python端,它是没有Null的说法。 ""是有值的: 表示该字段值为空字符, 一定要分清值为空和值为空字符的区别。 None是该字段未赋值,None在数据库端表现为对应的Column值为Null(为空)。

          另外,domain="[('parent_id','=', False)]"意思是:筛选出父表PartOption(ORM, class PartOption默认转为table PartOption)中parent_id为空(未赋值)的记录 (parent_id为空字符不能算,虽然人眼看不见), 如果form view中有 field name="option_id" />, 它会是一个下拉列表,显示的内容是筛选出的记录的 name列的值(默认)。

          还有: 2、如果真的需要判断某个字段为假,又怎样用domain表示? 字段为假,说明该字段为Boolean, 比如说res_partner有is_company列, 在表中 is_company列值为 False或者为True,还是用 domain="[('is_company','=', False)]"。

          Felix / TriangleERP inc. / QC / CA

          H 1 条回复 最后回复
          0
          • JoshuaJ 离线
            JoshuaJ 离线
            Joshua 管理员
            在 回复了 hui 最后由 Joshua 编辑
            #5

            @1234567 我说的Odoo定义的字段意思是通过Odoo ORM定义的字段。

            其他的感谢 @Felix_Cheng 已经解释的很清楚了。在Domain里面False,None都可以用作筛选未赋值。

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

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

              @Felix_Cheng
              懂了,谢谢你。:sisi:

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

                @Joshua
                谢谢你。

                1 条回复 最后回复
                0

                • 登录

                • 没有帐号? 注册

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