Почему я получаю ошибку 'function upper (bytea)' в python 3? - PullRequest
3 голосов
/ 21 октября 2019

В настоящее время я работаю над преобразованием моего проекта py-2 в py-3, и во время этого преобразования я столкнулся с видом ошибки ниже.

Partner.objects.filter(name__iexact = name_kv).count()

Когда я работаю вышезапрос в py2 работает отлично и получает вывод '0', означает получение пустого списка.

Когда я выполняю запрос выше в py3, он показывает вид ошибки ниже.

django.db.utils.ProgrammingError: function upper(bytea) does not exist
LINE 1: ...alse AND UPPER("partners_partner"."name"::text) = UPPER('\x4...
                                                             ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

У меня естьискал много в Интернете и ТАК другие вопросы, но не смог найти никакого решения.

Я выяснил, что это, должно быть, была проблема с версией Python & Я получаю вышеуказанную ошибку, когда мой запрос ORM не имеет каких-либозаписи .

1 Ответ

2 голосов
/ 22 октября 2019

Попробуйте преобразовать вашу переменную name_kv в строковый тип, используя str(name_kv).

Обновите ваш запрос, например Partner.objects.filter(name__iexact = str(name_kv)).count().

Вы получаете ошибку, поскольку переменная, содержащая данные типа байта, такПреобразование байтовых данных в строковый тип может решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...