context.get('active_ids',[])是什么意思?我们为什么用它?

时间:2018-03-20 12:50:39

标签: python odoo odoo-10

以下代码来自Odoo 10中的export_stockinfo_xls。我想知道context.get('active_ids', [])是什么意思,返回值是什么。为什么我们在该表达式中使用[]

@api.multi
def export_xls(self):
    context = self._context
    datas = {'ids': context.get('active_ids', [])} # what mean this and what return

    datas['model'] = 'product.product'
    datas['form'] = self.read()[0]

    for field in datas['form'].keys():
        if isinstance(datas['form'][field], tuple):
            datas['form'][field] = datas['form'][field][0]
    if context.get('xls_export'):
        return {
            'type': 'ir.actions.report.xml',
            'report_name': 'export_stockinfo_xls.stock_report_xls.xlsx',
            'datas': datas,
            'name': 'Current Stock'
        }

2 个答案:

答案 0 :(得分:2)

如果您在树视图中context.get('active_ids', [])返回已检查元素ID的列表。如果您在表单视图中,则返回您在屏幕上看到的项目的ID。 如果没有元素id,则返回空列表([])。 我希望这能帮到你。

答案 1 :(得分:0)

方法dict.get用于从字典中获取值。它有一个额外的参数,可以从字典中返回默认值。

dict.get演示:

dictionary = {"message": "Hello, World!"}
print(dictionary.get("message", ""))
print(dictionary.get("message_1111", "No Value"))   #Note: "message_1111" not in dictionary. 

<强>输出:

Hello, World!
No Value

<强> MoreInfo

在你的情况下。

context.get('active_ids', [])

如果'active_ids'不在上下文中,则返回一个空列表。