2015-02-02 1 views
0

Я создаю образец модуля, например управление библиотекой, и int, что имея модель «запаса», я хотел бы получить количество поврежденных номеров книг из общих книг в библиотеке (например, состояние книг повреждено, заделано и т. д.), я хотел бы получить количество книг, которые находятся в поврежденном состоянии, из модели с именем «bookinfo» Я пробовал приведенный ниже код, но никаких проблем. PLZ помочь в этом.Нужна помощь в функции search_count() в odoo

поле в модели "акции":

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

код, чтобы получить количество поврежденных книг от модели "BookInfo":

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

ответ

1

Попробуйте следующее:

@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'] поиск ([]) а = 0 для х в разрешении: если (x.status == 'повреждение'): а = а + 1 самостоятельно .damaged_books = a –

+0

Только хэдз-ап, что api.one устарел после Odoo V9! Рекомендуется использовать api.multi с гарантией_one(). Это написано в API ORM по адресу https://www.odoo.com/documentation/8.0/reference/orm.html#module-openerp.api – Yenthe

+0

Спасибо @Yenthe для добавления информации. –