創建的元組我做一個簡單的查詢:從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 –