用列表值连接对象,Python Odoo

用列表值连接对象,Python Odoo,python,openerp,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_da

我试图将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)
但我有两个价值观可以这样做

有没有办法实现这一点或就此提出任何建议?
谢谢

您可以使用这一行代码实现:

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']
输出:

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']

您可以使用以下一行代码来实现:

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']
输出:

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']
你可以试试 var=“rec.”+str(my_rec[0])

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

尝试以下解决方案:

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)
尝试以下解决方案:

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)


这会在列表中附加实际值吗?哪个列表<代码>分辨率?是的,看看上面例子中的
res
的内容我的意思是说'rec.test_field'有一个类似于'john'或'bill'的值。@ArsalanSherwani我不确定我是否理解你的问题,但是看看上面的例子,看看你是否在寻找这个值。这会在列表中附加实际值吗?哪个列表<代码>分辨率?是的,看看上面例子中的
res
的内容我的意思是说'rec.test_field'的值类似于'john'或'bill'。ArsalanSherwani我不确定我是否理解你的问题,但看看上面的例子,看看这是否就是你想要的。我试过了,它成功了。我可以将值附加到特定索引吗?然而,我的名单是空的。就像我想在索引3处放置一个值,而索引1,2是空的。因为我想在我的报告中的特定列获取它,所以我需要将它设置为特定列index@ArsalanSherwani我无法理解你的问题。你能举个例子吗?我试过这个,它很有效。我可以将值附加到特定索引吗?然而,我的名单是空的。就像我想在索引3处放置一个值,而索引1,2是空的。因为我想在我的报告中的特定列获取它,所以我需要将它设置为特定列index@ArsalanSherwani我无法理解你的问题。你能举个例子吗?你到底想要什么?!!你的代码是不可能的,去看看这个列表和你想要的结果是什么see@Tchi-Odoo,我想在特定索引处插入值,你能用示例描述你想要什么吗?你到底想要什么?!!你的代码是不可能的,去看看这个列表和你想要的结果是什么see@Tchi-Odoo,我想在特定索引处插入要列出的值。您可以用示例描述您想要的吗