Odoo 中文社区

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    • Users
    • Groups

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

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

    Odoo 开发与实施交流
    1
    2
    1812
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • mrshelly
      mrshelly last edited by

      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 Reply Last reply Reply Quote 0
      • First post
        Last post