Джанго - принуждение к Unicode - PullRequest
       28

Джанго - принуждение к Unicode

0 голосов
/ 29 сентября 2011

У меня проблема с юникодом, и, как только я сталкиваюсь с чем-то связанным, я полностью теряюсь ..

Один из моих шаблонов Django отображает ошибку TypeError:

Exception Value:    

coercing to Unicode: need string or buffer, long found

Строка, вызывающая проблемы, - это просто строка (которую я хочу использовать в запросе mysql):

query = unicode('''(SELECT asset_name, asset_description, asset_id, etat_id, etat_name FROM Asset LEFT OUTER JOIN Etat ON etat_id_asset=asset_id WHERE asset_id_proj='''+proj+''' AND asset_id_type='''+t.type_id+''' ORDER BY asset_name, asset_description) UNION (SELECT asset_name, asset_description, asset_id, 'NULL', 'NULL' FROM Asset WHERE asset_id_proj='''+proj+''' AND asset_id_type='''+t.type_id+''' AND asset_id IN (SELECT etat_id_asset FROM Etat)); ''')

Что здесь может быть не так?

1 Ответ

2 голосов
/ 29 сентября 2011

Я знаю, что вы нашли лучший способ добиться этого, но чтобы ответить на первоначальный вопрос, на случай, если вы снова получите эту ошибку где-нибудь еще в проекте:

t.type_id представляется длинным целым числом. Вы не можете смешивать целые числа в строках, если не конвертируете в строку, это действительно просто:

myString = 'some string with type id ' + str(t.type_id) + ', and whatever else you want in the string.'
...