跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. [记录] 关于super(class, self).sudo().method 与 super(class, self.sudo()).method 的解释

[记录] 关于super(class, self).sudo().method 与 super(class, self.sudo()).method 的解释

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
2 帖子 1 发布者 2.0k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • mrshellyM 离线
    mrshellyM 离线
    mrshelly
    写于 最后由 编辑
    #1

    Q:
    这样写 sudo,,, 被循环了,,,

    <br />&nbsp; &nbsp; def write(self, vals):<br />&nbsp; &nbsp; &nbsp; &nbsp; res = super(event_registration, self).sudo().write(vals)<br />&nbsp; &nbsp; &nbsp; &nbsp; return res<br />
    



    Joshua(470534800) 21:51:42
    super(event_registration, self.sudo()).write(vals)

    【大校】重庆-mrshelly(49812643) 2015-12-21 17:53:05
    super(xxoo, self).sudo().ooxx

    同
    super(xxoo, self.sudo).ooxx

    这两个的区别在哪里呢?


    【少校】上海-开阖-正翔
    @重庆-mrshelly super函数其实一个构造器,每次返回第一个参数的父类的一个代理,调用函数的时候,使用第二个参数,作为函数的self
    【少校】上海-开阖-正翔 2015/12/21 22:11:14
    super(xxoo, self.sudo).ooxx,所以这个 调用的是父类的函数,但是self还是子类的实例,且环境中的uid变成了1
    2015/12/21 22:11:39
    【少校】上海-开阖-正翔 2015/12/21 22:11:39
    super(xxoo, self).sudo().ooxx 但是这一个,返回了一个父类的代理
    【少校】上海-开阖-正翔 2015/12/21 22:12:06
    但是调用sudo()后,似乎 重新browse了一下,此时borwse到的是父类的对象。。。
    【少校】上海-开阖-正翔 2015/12/21 22:12:11
    可能是这样解释的


    先记录. 谢谢正翔的分析.

    1 条回复 最后回复
    0

    • 登录

    • 没有帐号? 注册

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