Я использую глупый и опасный способ достичь идеи.
В процессе введите имя, которое вы хотите найти.
При нажатии на кнопку, дб сразу создает новую запись, не содержащую ничего, кроме поля имени.
И после ввода функции я ее удаляю.
Чтобы это не вызывало ошибку.
my view.xml
<record model="ir.ui.view" id="process_data_entry_form">
<field name="name">pde.form</field>
<field name="model">yc.purchase</field>
<field name="arch" type="xml">
<form string="ProcessDataEntry form">
<sheet>
<group col="8">
</group>
<div>
<button string="search name" type="object" name="yc_purchase_search_name"/>
</div>
my mudule.py
@api.multi
# @api.onchange("name")
def yc_purchase_search_name(self,):
# if url action = 111 execute function
if self._context.get('params')['action'] == 111:
# delete the empty record just create by odoo
to_delete_id = self.env["yc.purchase"].search([('name', '=', self.name)],order='id desc',limit=1).id
sql = "delete from yc_purchase where id=%d" % to_delete_id
self._cr.execute(sql)
id = self.env['yc.purchase'].search([('name', '=', self.name)]).id
return {
'res_model': 'yc.purchase',
'type': 'ir.actions.act_window',
'res_id': id,
'view_type': 'form',
'view_mode': 'form',
'view_id': self.env.ref('yc_root.process_data_entry_form').id,
'target': 'inline',
}
результат как показано ниже.
![enter image description here](https://i.stack.imgur.com/vwNqy.gif)
Я думаю, что этот метод действительно опасен.
есть идеи?