从Odoo联系人列表视图中选择所有记录ID

时间:2016-09-22 14:41:12

标签: python xml listview odoo-9

我在.py文件中编写了一些python代码来显示向导

class DisplayWindow(models.Model):
_inherit = 'res.partner'
wizard_id = fields.Many2one('sale.example_wizard')

def result_to_search(self, cr, uid, active_ids):
    wizard = self.pool['sale.example_wizard'].create(cr, uid, vals={
        'partner_ids': [(6, 0, active_ids)]
    })
    return {
        'name': _('Account Search'),
        'type': 'ir.actions.act_window',
        'res_model': 'sale.example_wizard',
        'res_id': wizard,
        'view_type': 'form',
        'view_mode': 'form',
        'target': 'new',
    }

这是我的.xml文件

<openerp>
    <data>
        <!--This xml file is responsible for the server action of displaying the wizard-->
        <record model="ir.actions.server" id="action_search_for_result">
            <field name="name">Account Search</field>
            <field name="model_id" ref="sale.model_res_partner"/>
            <field name="code">
                if context.get('active_model') == 'res.partner' and context.get('active_ids'):
                    action = self.pool['res.partner'].result_to_search(cr, uid, context.get('active_ids'))
            </field>
        </record>
        <record model="ir.values" id="search_result">
            <field name="model_id" ref="sale.model_res_partner"/>
            <field name="name">Account Search</field>
            <field name="key2">client_action_multi</field>
            <!--automatically attach action to the dropdown button-->
            <field name="value" eval="'ir.actions.server,' +str(ref('action_search_for_result'))"/>
            <field name="key">action</field>
            <field name="model">res.partner</field>
        </record>
    </data>
</openerp>

我的问题是,当我从cutomer&#39;中选择所有客户时。 listview它只选择第一页联系人和我为向导按钮编写的任何代码,它只适用于第一页的客户。但我希望的结果可以用于所有我在数据库中拥有的客户。 可能我对这段代码做错了什么

wizard = self.pool['sale.example_wizard'].create(cr, uid, vals={
            'partner_ids': [(6, 0, active_ids)]
        })

请帮帮我。如果需要,我可以解释更多。感谢

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码获取所选记录。

wizard = self.pool['sale.example_wizard'].create(cr, uid, vals={
        'partner_ids': [(6, 0, self._context.get('active_ids',[]))]
    })

由于