我想在查询集的迭代中动态生成字段名称。
obj = tblFoo.objects.all()
for obj in queryset
for item in array
print obj.item
该数组具有tblFoo
的字段名称使用obj.item会给出一个错误,即密钥不存在,并使用类似
的字符串'物镜'。 + item为我提供了必需的字符串但它没有得到预期的值。
谁能告诉我这个假设是怎么做的?
答案 0 :(得分:3)
使用getattr(obj,'attribute_name_in_string')
getattr(object,name [,default])
返回object的named属性的值。名字必须是 串。如果字符串是对象属性之一的名称, 结果是该属性的值。例如,getattr(x, 'foobar')相当于x.foobar。如果命名属性没有 如果提供,则返回default,否则返回AttributeError 提高。
答案 1 :(得分:3)