2011-09-29 23 views
0

我有一個unicode問題,因爲每次我有什麼關係,我完全失去了..Django的 - 強迫爲Unicode

我的一個Django的模板渲染類型錯誤:

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

什麼可以錯在這裏?

+0

t.type_id和proj內部有什麼? – dragoon

+0

好吧,我剛剛發現在Django這樣做的正式方法,它工作正常。對不起,浪費你的時間! (是這樣的:'Person.objects.raw( 'SELECT * FROM myapp_person WHERE姓氏=%s' 的,[L-NAME])') – Johanna

+1

如果你想只選擇一切從一些表,可以活動更有效地做到這一點: ''Person.objects.filter(姓氏= L-NAME)''見Django的ORM文檔) – dragoon

回答

2

我知道你想出了一個更好的辦法來實現,而是要回答原來的問題,如果你再次得到這個錯誤在其他地方的項目:

t.type_id似乎是一個長整型。除非將字符串轉換爲字符串,否則不能混合字符串中的整數:

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