python - 如何在 python、odoo 中使用 For 循环正确计数?

标签 python for-loop odoo

存在不同类型的图书记录,该函数仅统计其中一种。我怎样才能让它计算所有流派?

功能:

@api.multi
def _total_count(self):

    for genre in self:
        if genre.name:
            count_num = 0
            ids = self.env['books.books'].search([('genre_ids', '=', genre.name)])
            if ids:
                count_num += 1
                genre.count = count_num

最佳答案

如果您在性别模型中有一个计算字段count并且您想要 每当您将一本书添加到该性别时自动设置其值 你可以这样做:

  1. 首先,我假设 gender_ids 是您书中的 Many2many 字段 让我们假设定义如下:
           gender_ids = fields.Many2many(co_model='gender.model.name',
                                         relation='book_gender_rel',
                                         column1='book_id',
                                         column2='gender_id')
  • 因此您需要在性别中创建相同的 many2many 字段 ,我的意思是该字段应该具有相同的字段名称和相同的关系名称 仅对column1和column2的值进行小幅更改,如下所示:
  •        book_ids = fields.Many2many(co_model='book.book',
                                       relation='book_gender_rel',
                                       column1='gender_id',
                                       column2='book_id')
    
  • 使您的 count 字段成为这样的计算字段,最好添加 store=True 如果计算量很大,并且你不想取 很多时间只是为了在 View (特别是 TreeView )中显示性别记录。
  •        # I renamed the field just to be more readable for others.
           count_book = fields.Integer(string='Number of books',
                                       compute='count_number_of_books',
                                       store=True,
                                       help='Contains number of book that belong to this gender')
    
    
           @api.depends('book_ids')
           def count_number_of_books(self):
               """ Count number of books that belong to this gender."""
               for gender in self:
                   gender.count_book = len(gender.book_ids)
    

    这样您就可以在报告或其他任何地方使用 count_book,而无需 不必担心计算它,因为 Odoo 会处理它。

    关于python - 如何在 python、odoo 中使用 For 循环正确计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53302823/

    相关文章:

    python - 如何将图像压缩为 tf.data.Dataset 中的目标图像

    python - 需要帮助从 csv 中提取数据并写入文本文件

    python - 编写这一小段 Python 代码的更有效方法?

    python - 如何更改 OpenERP 7 (Odoo) 中的 field.date 格式

    openerp - 在 super 调用中使用with_context会在odoo中变成无限调用

    python - 如何使用where子句在MySQL中插入多行

    javascript - jQuery 删除或添加样式到特定类型元素的最后一个

    python - 尝试使用 for 循环从列表中删除项目时,反向范围与正常范围

    python - 我无法在 for 循环中增加列表中的特定值

    python-2.7 - qweb 报告 odoo 中的总字数