如何使用odoojs对多个字段应用域过滤器?

2024-05-16 21:39:20 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我正在进行POS定制。我已经做了差不多了,但仍在这个问题上。在

Py文件:

class prescription(osv.osv):

     _name = 'res.prescriptions'

     _columns={

         'prescription_id':fields.many2one('res.partner',"customer"),

      }

class prescription_res_partner(osv.osv):

    _inherit = 'res.partner'

    _columns = {

        'prescriptions_ids':   fields.one2many('res.prescriptions','prescription_id','Prescriptions'),

}

我想做的是,当用户在POS中选择客户,点击处方按钮时,它只显示与特定所选客户相关的处方。。现在,它显示所有的处方,因为我不能正确地设置过滤域。也。。。。。在

我尝试过使用JS中的.query().filter()来解决我的问题。但是有一些错误,如果我输入静态的合作伙伴,那么它将显示给定静态合作伙伴的处方。我想为动态合作伙伴解决这个问题。它只显示选定合作伙伴的处方。。。!!!在

在JS文件中:

^{pr2}$

我花了将近3天的时间来克服这个问题,但是没有成功。请帮我摆脱这个困境。再次感谢您的帮助。。!!!在


Tags: columns文件posidfieldspartner客户js
2条回答

您可以在以下字段中尝试使用域:

_columns = {

'prescriptions_ids': fields.one2many('res.prescriptions','prescription_id','Prescriptions', domain="[('prescription_id', '=', 51)]"),
}

将51与另一列相关

您可以在on_change方法中完成。在

prescription_ids = # search for prescriptions related to the selected customer  

# self.pool.get('res.prescriptions').search(cr, uid, [('partner_id', '=', YOU SHOULD GET THE CUSTOMER ID)])

res['domain']['prescription_id'] = [('id', 'in', prescription_ids)]

return res

相关问题 更多 >