나는 몇 가지 테스트를 수행 한 : 레코드가 bool()
와 함께 캐스팅 된 경우일부 운영자가 Odoo의 레코드 세트에서 예상대로 작동하지 않는 이유는 무엇입니까?
>>> empty_recordset = self.env['res.users'] # empty recordset
>>> not_empty_recordset = self.env['res.users'].search([('id', '=', 1)]) # recordset with one record
>>> empty_recordset is False
False
>>> empty_recordset is None
False
>>> empty_recordset == False
False
>>> empty_recordset == True
False
>>> bool(empty_recordset)
False
>>> not empty_recordset
True
>>> if empty_recordset: # it is treated as False
... print('hello')
...
>>> bool(not_empty_recordset)
True
>>> if not_empty_recordset:
... print('hello')
...
hello
>>> not not_empty_recordset
False
- 는
True
또는False
반환합니다. if
및not
문을 사용하면 결과도 예상됩니다.- 그러나 연산자를
is
,==
,!=
과 함께 사용하면 결과가 예상되지 않습니다.
무슨 일입니까? 레코드 집합은 if
및 not
문으로 만 부울 값으로 처리됩니까? 나머지 사업자들은 과부하 상태가 아닌가?