odoo self.ensure_one()

源码:

def ensure_one(self):
    """ Verifies that the current recorset holds a single record. Raises
    an exception otherwise.
    """
    try:
        # unpack to ensure there is only one value is faster than len when true and
        # has a significant impact as this check is largely called
_id, = self._ids  # 开始没明白什么意思,应该是python的多重赋值,只不过这种写法的情况下等号右边必须是可迭代的
        return self
    except ValueError:
        raise ValueError("Expected singleton: %s" % self)

odoo self.ensure_one()_第1张图片

 

 

这段代码如果换种方式就很好理解了:

def ensure_one(self):
        """ 
      换种写法
        """
        if len(self) == 1:
       return self
     else:
            raise ValueError("Expected singleton: %s" % self)

      换种写法
        """
        if len(self) == 1:
       return self
     else:
            raise ValueError("Expected singleton: %s" % self)

  

 

 

 

 

 

 

你可能感兴趣的:(odoo)