2016-05-12 90 views
1

創建的元組我做一個簡單的查詢:從Django的原始查詢設置

q = `Select * from table` 
Table.objects.raw(q) 

,這將給我RawQuerySet

有沒有辦法以元組元組的形式得到結果? 例如,如果將有已在表中僅有2場,那麼結果會是什麼樣子:

((1, 'name1'), (2, name2)) 
+0

是否有任何理由爲什麼你正在做一個原始的SQL查詢,而不是使用ORM? 'Table.objects.all()'? – solarissmoke

+0

其實查詢有點複雜,有4個JOINS和1個UNION –

回答

0

如果你不想返回模型實例,然後我看不出使用raw()任何優勢。你可以直接代替execute custom SQL

from django.db import connection 
cursor = connection.cursor() 
cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz]) 
result = cursor.fetchall() 
3

任何理由不要在Python中做到這一點?

rqs = Table.objects.raw(q) 
tuples = tuple((o.pk, o.name) for o in rqs) 
+0

我不知道字段的名字 –