2015-02-02 5 views
0

도서관 관리와 같은 샘플 모듈을 만들고 있습니다. int는 "재고"모델입니다. 라이브러리의 전체 도서에서 손상된 도서 번호를 얻고 싶습니다. (예 : 책의 상태가 손상된 경우 등) "bookinfo"라는 모델에서 손상된 상태의 책 수를 얻고 싶습니다 아래 코드를 시도했지만 문제가 없습니다. PLZ 도움이됩니다. 모델 "재고"에서odoo의 search_count() 함수에 대한 도움이 필요합니다.

필드 :

@api.depends()   
def damage(self):   
    count = self.env['bookinfo.status'].search_count([('status','=','damage')]) 
    self.damaged_books = count 

답변

1

은 다음을 시도해보십시오 :

damaged_books=fields.Integer(compute='damage') 

코드는 모델 "bookinfo"에서 손상된 책의 수를 얻을 수

@api.one 
def damage(self): 
    count=self.env['bookinfo.status'].search_count([('status','=','damage')]) 
    self.damaged_books=count 

H "@ api.depends"를 사용할 필요가 없도록 모든 필드에서 시계를 추가해야한다고 생각하지 않습니다. 필드를 계산하고 값을 데이터베이스에 저장하기 위해 다른 필드를 감시하고 싶을 때 사용됩니다.

+0

답장을 보내 주셔서 감사합니다. 위 코드 대신 다음 코드를 사용해 보았습니다. . 입술 self.env = [ 'bookinfo'] 검색 ([]) 입술에 대한 X = 0 : 만약 (x.status == '손상') A = A + 1 자체 .damaged_books = a –

+0

단지 api.one은 Odoo V9 이후 사용되지 않습니다. https://www.odoo.com/documentation/8.0/reference/orm.html#module-openerp.api의 ORM API에 api.multi와 ensure_one()을 사용하는 것이 좋습니다. – Yenthe

+0

감사합니다. 정보 추가를위한 @Yenthe. –