Django - 从 geraldo 报告中删除无关的 unicode 符号

发布于 2024-10-31 04:27:18 字数 605 浏览 2 评论 0原文

我正在使用 geraldo/reportlab 在我的数据库上生成零件报告。 Reportlab 只允许我一次执行一个查询集(据我所知)。因此,我的报告的某些方面会从 ManyToMany 字段和外键中提取出来。

例如,reports.py 中的 class 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(),但没有成功。

关于如何解决这个问题有什么想法吗?提前致谢!

I am using geraldo/reportlab to generate part reports on my database. Reportlab only lets me perform one queryset at a time (as I understand it.) As a result, certain aspects of my report are pulled out of ManyToMany fields and ForeignKeys.

For example, class band_detail in reports.py:

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))

This displays as:

[u'1', u'2', u'3']

...and so on. I don't know how to get rid of the unicode symbol "u." I can't iterate over my lambda function in ObjectValue. I tried overriding geraldo classes and definitions such as do_before_generate(), but had no luck.

Any ideas on how to fix this? Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

子栖 2024-11-07 04:27:18

尝试:

[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']

Try:

[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)
           )
]

or

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)
            ]
           )

this should give you:

['1', '2', '3']
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文