在下面的代码中data_var是来自Django查询的我的对象,即 data_var = Datavar.objects.all().我有数据库领域,如field1,field2,field3,等在下面的代码,我试图让字段作为一个字符串的名字var,然后说tg.var,但我得到的对象有没有属性"变种"的错误:
如果我说它tg.var应该被解释为tg.field1或2或3.怎么做到这一点?
for tg in data_var:
for col in range(content.no_of_cols):
var = "field" + str(col)
tg.var
Run Code Online (Sandbox Code Playgroud)
要使用字符串名称获取对象的属性,您应该使用getattr内置函数,这样就可以将代码转换为下一行:
for tg in data_var:
for col in range(content.no_of_cols):
var = "field" + str(col)
value = getattr(tg, var)
Run Code Online (Sandbox Code Playgroud)
gettatr在Python doc中解释.