gpt4 book ai didi

python - 如何在odoo中编写 TreeView 的最大值?

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:27 26 4
gpt4 key购买 nike

我有一个 TreeView 有 3 列。我想获得函数字段中每列的最大值?

class feeder_data(osv.Model):
_name = "feeder.data"
_rec_name= "company_id1"
_columns = {
'company_id1': fields.many2one('res.company', 'Substation', required=True),
'combine2':fields.one2many('data.value','combine','Details'),
'max_mw': fields.function(_amount_line, string='Subtotal',type='integer'),
}
class data_value(osv.Model):
_name = "data.value"
_rec_name = "mega_wat"
_columns={
'Hours':fields.integer('Hours'),
'mega_wat':fields.integer('Mega Watts'),
'combine':fields.many2one('feeder.data','details'),
}

这里我在data.value中有 TreeView 。在这个类中,我有 mega_wat 字段,我将在 hourly_feeder 类中输入值,我有一个字段作为 max_wt 我想要一个带有 max 的函数字段其中的 mega_wat

最佳答案

首先,在模型中创建 max 函数:

def _get_max_of_tree(self,cr,uid,ids,context=None):
res={}
for o in self.browse(cr, uid, ids, context):
res[o.id] = max(0.col1 , o.col2, o.col3)
return res

然后为其创建一个函数字段

_columns = { 
...
'mymax' : fields.function(_get_max_of_tree, type='float'),
...
}

编辑:在你的情况下,它应该是这样的:

class feeder_data(osv.Model):
_name = "feeder.data"
_rec_name= "company_id1"

def _amount_line(self,cr,uid,ids,context=None):
res={}
for fd in self.browse(cr, uid, ids, context):
res[fd.id] = max([dv.mega_wat for dv in fd.combine2])
return res

_columns = {
'company_id1': fields.many2one('res.company', 'Substation', required=True),
'combine2':fields.one2many('data.value','combine','Details'),
'max_mw': fields.function(_amount_line, string='Subtotal',type='integer'),
}

关于python - 如何在odoo中编写 TreeView 的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37803100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com