通过字段名获取数据模型对象具有选择属性的显式值 

.....
 
for obj in queryset: # 遍历选择的对象列表
data=[]
for field in fields_columns:#  fields_columns为选定的字段列表
if obj._meta.get_field(field).choices: #如果字段 有choices属性
data.append(eval('obj.get_'+field+'_display()'))
elif '_id' in field: #是否多对一外键  字段名=属性名+'_id' 
data.append(f'{getattr(obj,field[:-3])}') #多对一 访问模型类的属性(字段名去掉'_id') 返回关联模型对象的返回值。需转换为字符后才能to excel.
else:
data.append(f'{getattr(obj, field)}')#将字段转换为字符(如:img类型无法转为exel)
....
posted on 2022-12-21 00:09  ldx-wsj  阅读(35)  评论(0)    收藏  举报