当前位置: 首页>>代码示例>>Python>>正文


Python Transaction.setdefault方法代码示例

本文整理汇总了Python中trytond.transaction.Transaction.setdefault方法的典型用法代码示例。如果您正苦于以下问题:Python Transaction.setdefault方法的具体用法?Python Transaction.setdefault怎么用?Python Transaction.setdefault使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在trytond.transaction.Transaction的用法示例。


在下文中一共展示了Transaction.setdefault方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: get

# 需要导入模块: from trytond.transaction import Transaction [as 别名]
# 或者: from trytond.transaction.Transaction import setdefault [as 别名]
    def get(self, ids, model, name, values=None):
        '''
        Return target records ordered.

        :param ids: a list of ids
        :param model: a string with the name of the model
        :param name: a string with the name of the field
        :param values: a dictionary with the read values
        :return: a dictionary with ids as key and values as value
        '''
        pool = Pool()
        res = {}
        for i in ids:
            res[i] = []
        ids2 = []
        for i in range(0, len(ids), Transaction().cursor.IN_MAX):
            sub_ids = ids[i:i + Transaction().cursor.IN_MAX]
            ids2.append(pool.get(self.model_name).search([
                (self.field, 'in', sub_ids),
                ], order=self.order))

        cache = Transaction().cursor.get_cache(Transaction().context)
        cache.setdefault(self.model_name, {})
        ids3 = []
        for i in chain(*ids2):
            if i in cache[self.model_name] \
                    and self.field in cache[self.model_name][i]:
                res[cache[self.model_name][i][self.field].id].append(i)
            else:
                ids3.append(i)

        if ids3:
            for i in pool.get(self.model_name).read(ids3, [self.field]):
                res[i[self.field]].append(i['id'])

        index_of_ids2 = dict((i, index)
            for index, i in enumerate(chain(*ids2)))
        for val in res.values():
            val.sort(key=lambda x: index_of_ids2[x])
        return res
开发者ID:mediafactory,项目名称:tryton_core_daemon,代码行数:42,代码来源:one2many.py


注:本文中的trytond.transaction.Transaction.setdefault方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。