2016-05-12 63 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

我不知道字段的名字 –