1

我正在使用 geraldo/reportlab 在我的数据库上生成部分报告。Reportlab 一次只允许我执行一个查询集(据我了解)。因此,我的报告的某些方面被从 ManyToMany 字段和 ForeignKeys 中提取出来。

例如,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(),但没有运气。

有想法该怎么解决这个吗?提前致谢!

4

1 回答 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']
于 2011-04-05T18:06:30.073 回答