Django - 从Geraldo报告中移除多余的Unicode符号
我正在使用geraldo/reportlab来生成数据库的部分报告。根据我的理解,Reportlab一次只能处理一个查询结果。因此,我的报告中的某些内容是从多对多字段和外键中提取出来的。
比如,在reports.py中有一个叫band_detail的类:
ObjectValue(attribute_name='number', left = 9*cm, get_value=lambda instance: Drawing.objects.filter(number=DrawingRevision.objects.filter(part__id=instance.id).values('drawing')).values_list('number', flat=True))
这段代码的输出是:
[u'1', u'2', u'3']
...等等。我不知道怎么去掉unicode符号“u”。我无法在ObjectValue中对我的lambda函数进行迭代。我尝试重写geraldo的类和一些定义,比如do_before_generate(),但都没有成功。
有没有什么办法可以解决这个问题?提前谢谢大家!
1 个回答
1
试试这个:
[s.encode() for s in
ObjectValue(attribute_name='number',
left = 9*cm,
get_value=lambda instance:
Drawing.objects.filter(number=DrawingRevision.objects
.filter(part__id=instance.id)
.values('drawing')
).values_list('number', flat=True)
)
]
或者
ObjectValue(attribute_name='number',
left = 9*cm,
get_value=lambda instance:
[ n.encode() for n in
Drawing.objects.filter(number=DrawingRevision.objects
.filter(part__id=instance.id)
.values('drawing')
).values_list('number', flat=True)
]
)
这样应该能给你:
['1', '2', '3']