ORM API
Environment
Environment는 ORM에서 사용하는 다양한 문맥 데이터를 저장합니다.
데이터베이스 커서 (데이터베이스 쿼리의 경우) 및 현재 사용자(엑세스 권한 확인의 경우) 및 현재 컨텍스트(임의 메타 데이터 저장의 경우) 입니다.
environment는 캐시 또한 저장합니다.
모든 레코드 세트는 환경변수를 가지며, 환경변수는 env로 사용하여 엑세스 할 수 있스며 현재 사용자(user), 커서(cr) 또는 컨텍스트(context)에 대한 엑세스 권한을 제공합니다.
>>> records.env <Environment object ...> >>> records.env.user res.user(3) >>> records.env.cr <Cursor object ...)
다른 레코드 세트에서 레코드 세트를 만들면 환경이 상속됩니다.
환경은 다른 모델에서 빈 레코드 세트를 가져와서 해당 모델을 쿼리하는데 사용할 수 있습니다.
>>> self.env['res.partner'] res.partner >>> self.env['res.partner'].search([['is_company', '=', True], ['customer', '=', True]]) res.partner(7, 18, 12, 14, 17, 19, 8, 31, 26, 16, 13, 20, 30, 22, 29, 15, 23, 28, 74)
환경 설정
environment는 레코드 세트에서 사용자 정의 할 수 있습니다.
변경된 환경을 사용하여 새 버전의 레코드 집합을 반환합니다.
제공된 사용자 세트를 사용하여 새 환경을 만들고 아무것도 제공되지 않으면
관리자 권한으로(안전한 환경에서 엑세스 권한 / 규칙을 무시하기 위해) 새 environment를 사용하여 호출 된 레코드 세트의 복사본을 반환합니다.
# 관리자 권한으로 partner 객체 생성 env['res.partner'].sudo().create({'name': "A Partner"}) # "public" user가 볼수있는 partner를 나열합니다. public = env.ref('base.public_user') env['res.partner'].sudo(public).search([])
- 현재 환경의 컨텍스트를 대체하는 단일 위치 매개변수를 취할 수 있습니다.
- 현재 환경의 컨텍스트 또는 1단계에서 설정한 컨텍스트에 추가되는 키워드에 따라 원하는 수의 매개변수를 취할 수 있습니다.
# 파트너를 찾아 보거나 파트너가 없는 경우 지정된 시간대를 사용하여 파트너를 만듭니다. # 찾음 env['res.partner'].with_context(tz=a_tz).find_or_create(email_address)
기존 환경을 완전히 대체합니다.
'Coding' 카테고리의 다른 글
선택 안됨 Jquery ::: 반복연습 2번째 (0) | 2018.06.12 |
---|---|
Jquery ::: 반복연습 1번째 (0) | 2018.06.12 |
rpc (0) | 2018.04.26 |
ODOO 11 ::: ORM API - 레코드세트 (0) | 2018.04.26 |
HTTP ::: 프로토콜 구조 (0) | 2018.04.26 |