使用列表值连接对象,Python Odoo

时间:2017-11-01 12:45:38

标签: python openerp

我正在尝试将python对象与列表值连接以附加到另一个列表中。但我不知道如何以这种方式结合。

my_rec.append("old_date")  # these three are defined date fields
my_rec.append("test_date")
my_rec.append("new_date")



for rec in record.record_ids:                  
            var = "rec."+my_rec[new_date.month-1]
            res.append(var) # it works well with res.append(rec.new_date)

但我有两个很多值可以这样做

有没有办法达到这个或任何建议? 感谢

3 个答案:

答案 0 :(得分:1)

您可以使用此单行代码实现此目的:

res = [getattr(rec, r) for r in my_rec]

示例:

class Rec:
    def __init__(self):
        self.test_field = 'value1'
        self.new_date = 'value2'

rec = Rec()
my_rec = ['test_field', 'new_date']

res = [getattr(rec, r) for r in my_rec]

<强>输出:

>>> res
['value1', 'value2']

答案 1 :(得分:1)

尝试以下解决方案:

my_rec.append("test_field") # i have field as 'test_field'

var = getattr(rec, my_rec[0])  # so that it will create 'rec.test_field'

res.append(var)

答案 2 :(得分:0)

你可以试试 var =“rec。”+ str(my_rec [0])