从 psycopg2 升级到 psycopg3 后不显示图像/文件

问题描述 投票:0回答:1

在我的 Django 项目中从 psycopg2 升级到 psycopg3 后,我的图像(我需要将其存储为

bytea
在数据库中)不再渲染。

考虑

person = Person.objects.get(pk=1)
。然后我执行
FileResponse(person.picture, as_attachment=True)
来获取图片并将其提供给响应。

使用 psycopg2,

type(person.picture)
产生
memoryview
。使用 psycopg3,我得到
bytes

2 到 3 个差异文档 并未指出可能出现的问题。

django psycopg3
1个回答
0
投票

将数据缓冲区包装在可迭代中,如下所示:

FileResponse((person.picture, ), as_attachment=True)

这还提供了向后兼容性(即适用于版本 2 和 3)。

另请参阅https://github.com/psycopg/psycopg/discussions/733

© www.soinside.com 2019 - 2024. All rights reserved.