Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想在查询集的迭代中动态生成字段名称。
obj = tblFoo.objects.all() for obj in queryset for item in array print obj.item
该数组具有 tblFoo 的文件名
使用 obj.item 会出现错误,密钥不存在,并使用类似的字符串,
“对象。” + item 给了我所需的字符串,但它没有得到预期的值。
谁能告诉我这是怎么做的?
利用getattr(obj,'attribute_name_in_string')
getattr(obj,'attribute_name_in_string')
getattr(对象,名称[,默认值]) 返回对象的命名属性的值。名称必须是字符串。如果字符串是对象属性之一的名称,则结果是该属性的值。例如,getattr(x, 'foobar') 等价于 x.foobar。如果命名属性不存在,则返回默认值(如果提供),否则引发 AttributeError。
getattr(对象,名称[,默认值])
返回对象的命名属性的值。名称必须是字符串。如果字符串是对象属性之一的名称,则结果是该属性的值。例如,getattr(x, 'foobar') 等价于 x.foobar。如果命名属性不存在,则返回默认值(如果提供),否则引发 AttributeError。
您应该使用getattr(obj, item)来获得所需的值。这是该getattr函数的python 文档。
getattr(obj, item)
getattr
从文档:
例如,getattr(x, 'foobar') 等价于 x.foobar