2011-09-29 67 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.' 
相关问题