【问题标题】:one2many field get row numberone2many 字段获取行号
【发布时间】:2019-04-09 08:28:09
【问题描述】:

我有一个包含 one2many 文件的模块。

当我在这个 o2m 字段中创建数据行时,我想给它附加一个行号。

我尝试了一些在论坛中找到的方法,例如this link

但由于我没有名为 _onchange_partner_id() 的函数,我不知道如何使用它。

this link

但它似乎是一种我无法适应的旧版本方法。

class YcWeight(models.Model):

    _name = "yc.weight"
    customer_detail_ids = fields.One2many("yc.weight.details", "name", "customer details")

class YcWeightDetails(models.Model):
    _name = "yc.weight.details"

    name = fields.Many2one("yc.weight", "weight detail list", ondelete="cascade")
    no = fields.Integer("row number")

“否”是我想显示行数的字段。 我的问题是:

如何获取行数?

因为 onchage 修饰函数无法从 db 获取数据。

【问题讨论】:

    标签: odoo-11 one2many


    【解决方案1】:

    我自己找到了解决办法,很简单:

    使用依赖装饰器。

    class YcWeightDetails(models.Model):
        _name = "yc.weight.details"
    
        name = fields.Many2one("yc.weight", "weight detail list", ondelete="cascade")
        no = fields.Integer("row number")
        compuute_no = fields.Integer("invisible field", compute= "_get_row_no")
    

    创建一个字段“compuute_no”进行计算。

        @api.depends("compuute_no")
        def _get_row_no(self):
            if self.ids:
                count =1
                for rec in self:
                    weight_id = self.env['yc.weight.details'].search([('id','=', rec.id)])
                    weight_id.write({'no': count})
                    count+=1
    
    

    或覆盖创建方法

    @api.model
        def create(self, vals):
            main_key = self.env["yc.weight"].search([], order="id desc", limit=1).id
            item_key = vals["name"]
            if item_key and main_key == item_key:
                number = len(self.env["yc.weight.details"].search([("name", "=", item_key)]))
                vals.update({"no": number + 1})
                return super(YcWeightDetails, self).create(vals)
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多