Django python在迭代查询集时动态生成字段名称

时间:2013-10-15 07:15:03

标签: python django

我想在查询集的迭代中动态生成字段名称。

obj = tblFoo.objects.all()

    for obj in queryset
        for item in array
            print obj.item

该数组具有tblFoo

的字段名称

使用obj.item会给出一个错误,即密钥不存在,并使用类似

的字符串

'物镜'。 + item为我提供了必需的字符串但它没有得到预期的值。

谁能告诉我这个假设是怎么做的?

2 个答案:

答案 0 :(得分:3)

使用getattr(obj,'attribute_name_in_string')

  

getattr(object,name [,default])

     

返回object的named属性的值。名字必须是   串。如果字符串是对象属性之一的名称,   结果是该属性的值。例如,getattr(x,   'foobar')相当于x.foobar。如果命名属性没有   如果提供,则返回default,否则返回AttributeError   提高。

答案 1 :(得分:3)

您应该使用getattr(obj, item)来获取所需的值。 Heregetattr函数上的python文档。

来自文档:

  

例如,getattr(x,'foobar')相当于x.foobar