创建的元组我做一个简单的查询:从Django的原始查询设置
q = `Select * from table`
Table.objects.raw(q)
,这将给我RawQuerySet
。
有没有办法以元组元组的形式得到结果? 例如,如果将有已在表中仅有2场,那么结果会是什么样子:
((1, 'name1'), (2, name2))
创建的元组我做一个简单的查询:从Django的原始查询设置
q = `Select * from table`
Table.objects.raw(q)
,这将给我RawQuerySet
。
有没有办法以元组元组的形式得到结果? 例如,如果将有已在表中仅有2场,那么结果会是什么样子:
((1, 'name1'), (2, name2))
如果你不想返回模型实例,然后我看不出使用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()
任何理由不要在Python中做到这一点?
rqs = Table.objects.raw(q)
tuples = tuple((o.pk, o.name) for o in rqs)
我不知道字段的名字 –
是否有任何理由为什么你正在做一个原始的SQL查询,而不是使用ORM? 'Table.objects.all()'? – solarissmoke
其实查询有点复杂,有4个JOINS和1个UNION –