跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. odoo8 xmlrpc 授权登录不了

odoo8 xmlrpc 授权登录不了

已定时 已固定 已锁定 已移动 Odoo 新手求助
5 帖子 2 发布者 1.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • H 离线
    H 离线
    hui
    写于 最后由 hui 编辑
    #1
    import xmlrpclib
    
    url = 'http://127.0.0.1:8067'
    db = '1221_v8'
    username = 'admin'
    password = "admin@123"
    
    common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url))
    print(common.version())
    uid = common.authenticate(db, username, password, {})
    print(uid)
    

    报错信息:

    2017-12-25 10:09:59,614 26118 ERROR 1221_v8 openerp.http: object unbound
    Traceback (most recent call last):
      File "/home/odoo/odoo-dev/odoo8/odoo8/openerp/http.py", line 115, in dispatch_rpc
        result = dispatch(method, params)
      File "/home/odoo/odoo-dev/odoo8/odoo8/openerp/service/common.py", line 26, in dispatch
        return fn(*params)
      File "/home/odoo/odoo-dev/odoo8/odoo8/openerp/service/common.py", line 38, in exp_authenticate
        return res_users.authenticate(db, login, password, user_agent_env)
      File "/home/odoo/odoo-dev/odoo8/exide/auth_log/auth_log.py", line 28, in authenticate
        'ip': request.httprequest.remote_addr,
      File "/usr/lib/python2.7/dist-packages/werkzeug/local.py", line 338, in __getattr__
        return getattr(self._get_current_object(), name)
      File "/usr/lib/python2.7/dist-packages/werkzeug/local.py", line 297, in _get_current_object
        return self.__local()
      File "/usr/lib/python2.7/dist-packages/werkzeug/local.py", line 132, in _lookup
        raise RuntimeError('object unbound')
    RuntimeError: object unbound
    2017-12-25 10:10:29,585 6016 WARNING exide_v8 openerp.sql_db: Cursor not closed explicitly
    
    

    补充:是因为继承了res.users,并重写了 def authenticate(self, db, login, password, user_agent_env):方法,如下:

        def authenticate(self, db, login, password, user_agent_env):
            uid = super(res_users, self).authenticate(db, login, password, user_agent_env)
            cr = self.pool.cursor()
            if uid:
                r = self.pool.get('auth.log').create(cr, SUPERUSER_ID, {
                    'user_id': uid,
                    'time': fields.datetime.now(),
                    'ip': request.httprequest.remote_addr,
                })
                cr.commit()
            return uid
    

    如何解决?

    1 条回复 最后回复
    0
    • 萧 离线
      萧 离线
      萧云飞
      写于 最后由 编辑
      #2

      报错信息提示你,数据库游标没有正常关闭, 你打开了数据库游标,你就要关闭噻,在你return语句前面,关闭游标就可以了

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

        @萧云飞
        加了cr.close(),报错同样:

        2017-12-27 03:47:45,506 15161 ERROR 1227_v8 openerp.http: object unbound
        Traceback (most recent call last):
          File "/home/odoo/odoo-dev/odoo8/odoo8/openerp/http.py", line 115, in dispatch_rpc
            result = dispatch(method, params)
          File "/home/odoo/odoo-dev/odoo8/odoo8/openerp/service/common.py", line 26, in dispatch
            return fn(*params)
          File "/home/odoo/odoo-dev/odoo8/odoo8/openerp/service/common.py", line 38, in exp_authenticate
            return res_users.authenticate(db, login, password, user_agent_env)
          File "/home/odoo/odoo-dev/odoo8/exide/module/auth_log/auth_log.py", line 28, in authenticate
            'ip': request.httprequest.remote_addr,
          File "/usr/lib/python2.7/dist-packages/werkzeug/local.py", line 338, in __getattr__
            return getattr(self._get_current_object(), name)
          File "/usr/lib/python2.7/dist-packages/werkzeug/local.py", line 297, in _get_current_object
            return self.__local()
          File "/usr/lib/python2.7/dist-packages/werkzeug/local.py", line 132, in _lookup
            raise RuntimeError('object unbound')
        RuntimeError: object unbound
        2017-12-27 03:47:45,509 15161 WARNING 1227_v8 openerp.sql_db: Cursor not closed explicitly
        Please enable sql debugging to trace the caller.
        
        萧 1 条回复 最后回复
        0
        • 萧 离线
          萧 离线
          萧云飞
          在 回复了 hui 最后由 萧云飞 编辑
          #4

          @1234567 嗯,刚再仔细看了下,这个cr没有正常关闭,只是其中一个警告,还有一个报错信息,你自定义的anthenticate方法中,字典中'ip': request.httprequest.remote_addr报错,你再检查下试试

          H 1 条回复 最后回复
          0
          • H 离线
            H 离线
            hui
            在 回复了 萧云飞 最后由 编辑
            #5

            @萧云飞
            我看见这个错误啦,这个不知道怎么解决呢

            1 条回复 最后回复
            0

            • 登录

            • 没有帐号? 注册

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