【问题标题】:odoo 12. I can't do a dynamic filter on a many2one fieldodoo 12. 我不能在 many2one 字段上做动态过滤
【发布时间】:2020-01-10 19:04:37
【问题描述】:

我想根据一些条件检索用户。我可以使用 odoo-bin 执行以下请求,并且我有我想要检索的用户。

我的查询:

self.env['res.users'].sudo().search([('id','in',[k.name_student_id.id for k in self.env['rdv.rdv'].sudo().search([('nb_rdv','>=',1)])])]).ids

查询返回一个 id 列表。但是当我在 many2one 字段中输入相同的查询时,我得到了所有用户。我只是不认为请求正在执行。

我在字段中的查询:

name_student_id = fields.Many2one('res.users', 'Etudiant', required=True, default=lambda self: self.env['res.users'].sudo().search([('id','in',[k.name_student_id.id for k in self.env['rdv.rdv'].sudo().search([('nb_rdv','>=',1)])])]).ids )

我的查询必须是这样的:

name_student_id = fields.Many2one('res.users', 'Etudiant', required=True, default=lambda self: self.env['res.users'].sudo().search([('id','in','[43,64,65]')]) )

我需要帮助,想知道是否没有其他方法来执行查询并在 many2one 字段中显示结果以显示用户。谢谢

【问题讨论】:

    标签: python python-3.x odoo odoo-12


    【解决方案1】:

    默认用于在您的字段上设置一个值,该方法应为您的 many2one 女巫返回一个有效值int,定义一个默认域使用域属性不是默认值,该方法应返回一个有效域不是您在字段中进行搜索时将传递的 id 列表:

     domain=lambda self: [('id',  'in',  self.env['rdv.rdv'].sudo().search([('nb_rdv','>=',1)]).mapped('name_student_id').ids)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      相关资源
      最近更新 更多