Skip to content
  • Categories
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • 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

  • Default (Flatly)
  • No Skin
Collapse

Odoo 中文社区

  1. Home
  2. Categories
  3. Odoo 新手求助
  4. 字段domain过滤权限问题,请各位大大看看

字段domain过滤权限问题,请各位大大看看

Scheduled Pinned Locked Moved Solved Odoo 新手求助
16 Posts 2 Posters 2.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • digitalsatoriD Offline
    digitalsatoriD Offline
    digitalsatori 管理员
    wrote on last edited by
    #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 Reply Last reply
    0
    • 万 Offline
      万 Offline
      万叶言雨
      replied to digitalsatori on last edited by
      #8

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

      万 digitalsatoriD 2 Replies Last reply
      0
      • 万 Offline
        万 Offline
        万叶言雨
        replied to 万叶言雨 on last edited by
        #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 Reply Last reply
        0
        • 万 Offline
          万 Offline
          万叶言雨
          replied to 万叶言雨 on last edited by
          #10

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

          1 Reply Last reply
          0
          • digitalsatoriD Offline
            digitalsatoriD Offline
            digitalsatori 管理员
            wrote on last edited by
            #11

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

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

            万 1 Reply Last reply
            0
            • digitalsatoriD Offline
              digitalsatoriD Offline
              digitalsatori 管理员
              replied to 万叶言雨 on last edited by
              #12

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

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

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

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

              1 Reply Last reply
              0
              • 万 Offline
                万 Offline
                万叶言雨
                replied to digitalsatori on last edited by
                #13

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

                1 Reply Last reply
                0
                • digitalsatoriD Offline
                  digitalsatoriD Offline
                  digitalsatori 管理员
                  wrote on last edited by digitalsatori
                  #14

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

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

                  万 1 Reply Last reply
                  0
                  • 万 Offline
                    万 Offline
                    万叶言雨
                    replied to digitalsatori on last edited by
                    #15

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

                    1 Reply Last reply
                    0
                    • digitalsatoriD Offline
                      digitalsatoriD Offline
                      digitalsatori 管理员
                      wrote on last edited by
                      #16

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

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

                      1 Reply Last reply
                      0

                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Tags
                      • Popular
                      • Users
                      • Groups