2016-06-01 2 views
0

요약하면 이진 필드의 기본값은 Odoo입니까?Odoo의 이진 필드의 기본값

특히, 특정 문서가 레코드에 포함되었는지 여부 (즉, 레코드의 완료 필드 수에 대한 상태 표시 줄)에 따라 계산 된 필드를 구성하려고합니다. 레코드가 저장된 후 BIN1과 BIN2 이진 필드입니다 및 부울 다음 내 진행 다행히

progress = 100.0 * (1*bool + 1*(bin1 is not None) + 1*(bin2 is not None))/3 

로 계산 될 것이다, 부울 경우 장난감 예를 들어

,이 계산은 잘 작동합니다. 그러나 에서 모드를 편집하면 진행률이 2/3 인 것처럼 표시됩니다.

이진 필드의 기본값 또는 이진 필드가 채워지지 않았는지 여부에 대한 정보를 추출하는 방법에 대한 아이디어가 있습니다.

답변

1

비어있는 2 진수 필드는 False이며, 값이 1은 base64 인코딩 된 문자열을 포함합니다. 당신이 당신의 computatation을하기 전에

그래서, 당신은 같은 작업을 수행해야합니다

if item.bin_field: 
    bin_val = item.bin_field.decode('base64') 

수표

당신은 기본적으로 None- is 내 값과 동일 "말 그래서 당신이"정체성 비교 "를하고 있기 때문에 실패하는 경우? " boolean-ly false인지 확인하는 대신.

+0

감사합니다. mang, 그걸 정리합니다! – BenSmith