Изображения/файлы не отображаются после обновления psycopg2 до psycopg3

После перехода с psycopg2 на psycopg3 в моем Django-проекте мои изображения (которые нужно хранить как bytea в базе данных) больше не рендерятся.

Просматриваю person = Person.objects.get(pk=1). Затем я делаю FileResponse(person.picture, as_attachment=True), чтобы получить картинку и подать ее в ответ.

При использовании psycopg2, type(person.picture) дал memoryview. С помощью psycopg3 я получил bytes.

В документации от 2 до 3 различий не указано, что может быть не так.

Оберните буфер данных в итерируемую переменную таким образом: FileResponse((person.picture, ), as_attachment=True).

Это также обеспечивает обратную совместимость (т.е. работает на версиях 2 и 3).

См. также https://github.com/psycopg/psycopg/discussions/733

Это документировано в журнале изменений psycopg 3.0.17 https://www.psycopg.org/psycopg3/docs/news.html#psycopg-3-0-17:

Load bytea as bytes, not memoryview, using ctypes implementation.
Вернуться на верх