跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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 新手求助
16 帖子 2 发布者 2.0k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • digitalsatoriD 离线
    digitalsatoriD 离线
    digitalsatori 管理员
    写于 最后由 编辑
    #7

    @万叶言雨 在 字段domain过滤权限问题,请各位大大看看 中说:

    是不是不能用等号呀,一个用户可能兼有多个权限组

    你说的对,domain改成:

    user = fields.Many2one('res.users', domain=lambda self: [('groups_id', 'in', self.env.ref('权限组xmlid').ids)])
    

    你上面的错误应该是xmlid错了,xmlid必须是模块名.xmlid,即使在本模块中定义的xmlid也要带上本模块的名字。

    另外,之所以这里要将domain定义在python文件的field上的原因是我们需要将xmlid解析为数据库id,在前端处理很麻烦,需要先eval这个ref(xxxx)

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

    万 1 条回复 最后回复
    0
    • 万 离线
      万 离线
      万叶言雨
      在 回复了 digitalsatori 最后由 编辑
      #8

      @digitalsatori
      groups_id不需要加.id么。这个in是前面元素是否在后面元素列表里,我看后面只是单个权限组,前面groups_id是res_users模型的群组,应该是列表字段吧

      万 digitalsatoriD 2 条回复 最后回复
      0
      • 万 离线
        万 离线
        万叶言雨
        在 回复了 万叶言雨 最后由 编辑
        #9

        @万叶言雨 加上模块名报这个,找不到id:

          self._write(store_vals)
          File "E:\workdata\PycharmProjects\odoo-12\odoo\models.py", line 3457, in _write
            self._validate_fields(vals)
          File "E:\workdata\PycharmProjects\odoo-12\odoo\models.py", line 1112, in _validate_fields
            raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
        odoo.tools.convert.ParseError: "constraint 检查错误
        
        External ID not found in the system: business.entertainment.sheet.yz_group_bm
        None" while parsing file:/e:/workdata/pycharmprojects/odoo-12/odoo/myaddons/business_entertainment/views/business_view.xml:4, near
        <record id="view_tree_business" model="ir.ui.view">
        
        万 1 条回复 最后回复
        0
        • 万 离线
          万 离线
          万叶言雨
          在 回复了 万叶言雨 最后由 编辑
          #10

          @万叶言雨 ,就是最开始我写的domain没报错误,表单点击字段说是没有访问权限
          替代文字
          但用管理员登录是没问题的,也正常显示对应权限组下的用户。用其他用户登录就不行,然后不加domain过滤的话,所有用户登上去都是正常点击并能显示全部用户列表

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

            你的报错,是view里的错误啊。business.entertainment.sheet.yz_group_bm这是什么?

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

            万 1 条回复 最后回复
            0
            • digitalsatoriD 离线
              digitalsatoriD 离线
              digitalsatori 管理员
              在 回复了 万叶言雨 最后由 编辑
              #12

              @万叶言雨 在 字段domain过滤权限问题,请各位大大看看 中说:

              @digitalsatori
              groups_id不需要加.id么。这个in是前面元素是否在后面元素列表里,我看后面只是单个权限组,前面groups_id是res_users模型的群组,应该是列表字段吧

              不需要。的确,真正的语意是倒过来才对,但是左侧必须是对象上的字段,所以Odoo会做这个反转的逻辑操作的。

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

              1 条回复 最后回复
              0
              • 万 离线
                万 离线
                万叶言雨
                在 回复了 digitalsatori 最后由 编辑
                #13

                @digitalsatori
                business.entertainment.sheet是模型_name,view里domain去掉了

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

                  嗯,不过从你view里报的错就知道你的xmlid写得还是不对,模块名.xmlidxxxxxxxx 不是 “模型名.xmlidxxxxxxx"

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

                  万 1 条回复 最后回复
                  0
                  • 万 离线
                    万 离线
                    万叶言雨
                    在 回复了 digitalsatori 最后由 编辑
                    #15

                    @digitalsatori 嗯嗯,可以了。刚看错了:disappointed_but_relieved_face: ,非常感谢

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

                      不客气,很高兴对你有帮助。

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

                      1 条回复 最后回复
                      0

                      • 登录

                      • 没有帐号? 注册

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