【问题标题】:How to display only 1 record in a many2one dropdown if there are more than one record with the same field value in odoo如果odoo中有多个具有相同字段值的记录,如何在many2one下拉列表中仅显示1条记录
【发布时间】:2020-11-25 07:49:45
【问题描述】:

我有一个从 res.partner.bank 继承的模型,我添加了一个名为 location 的自定义字段,这就是模型的样子。

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

    location = fields.Char()

我有另一个从 sale.order 继承的模型,其字段与 res.partner.bank 具有多对一关系 如果 res.partner.bank 中有超过 1 条具有相同位置字段值的记录,我只想在 many2one 下拉列表中显示 1 条记录? 这是我继承的 sale.order 模型,带有 many2one location_id 字段

location_id = fields.Many2one('res.partner.bank',
                               string='Bank Account Location')

因此,如果有相同位置的重复 res.partner.bank 记录,我只想在下拉列表中显示 1 条记录。

【问题讨论】:

  • 将其设为compute 字段,并在计算方法中为其分配一条记录。

标签: python odoo odoo-13


【解决方案1】:

首先,使您的字段compute,然后在计算方法中搜索来自特定模型的所有记录并根据您的要求进行分配。

location_id = fields.Many2one('res.partner.bank', string='Meters', compute="_get_value")

def _get_value(self):
    for i in self:
        records = self.env['res.partner.bank'].search([], limit=1) # search with one record only from whole search and assign it.
        i.location_id = records and records.id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多