ODOO13 如何在Many2one字段選擇控件上進行多條件搜索

本文實際上是對 _name_search 方法的應用。本文以在Many2one圖書借閱人字段上,輸入借閱人姓名或借閱人手機號碼來搜索借閱人舉例說明使用方法。

假如我們有這樣的需求:有讀者(默認讀者信息已存在數據庫中)前來借閱,圖書管理員需要登記借閱信息,在登記信息,選擇借閱人時,管理員希望既能通過借閱人姓名,還能通過借閱人手機號,快速檢索到借閱人。畢竟現在的人給孩子取名都挺撈的,張梓曦,張梓兮,張梓汐,張子兮,張子汐,王浩辰,王浩宸,王皓宸,王皓辰。管理員表示:我特麼心態崩了,我特麼裂開了,我特麼知道哪個是你?趕緊給我整個手機號搜索吧。

 行,那咱就重寫_name_search 方法吧。

class ResPartner(models.Model):
    _inherit = 'res.partner'

    name = fields.Char(string="Name")
    phone = fields.Char(string="Phone")
   
    @api.model
    def _name_search(self, name='', args=None, operator='ilike', limit=100, name_get_uid=None):
        if args is None:
            args = []
        domain = args + ["|",('phone', operator, name),('name', operator, name)]
        ids = self._search(domain, limit=limit, access_rights_uid=name_get_uid)
        return models.lazy_name_get(self.browse(ids).with_user(name_get_uid))

倒數第二行,爲domain 增加手機號篩選即可 

文中上述方法,適合在Many2one的字段控件上,進行多條件搜索,搜索視圖中的多條件搜索請請移步 ODOO 域(條件)表達式 domain、force_domain及filter_domain 的應用場景及應用方式 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章