2015-03-02 91 views
1

如何在使用自定義查詢時創建查詢集對象。查詢集對象

我想加入5表。但是沒有在所有表中定義的外鍵(其整數字段而不是外鍵)

例如:PersonID是整數字段。用戶的商店ID。所以現在我想加入這兩個表,因爲沒有外鍵定義。那麼如何加入這兩個。

如果我們使用的自定義查詢像

cursor.connection() 
cursor.execute() 

那麼它不檢索查詢中設置的對象。無論如何,我需要查詢設置對象。所以你可以幫我解決這個問題。

謝謝。

回答

1

使用raw()查詢:

Person.objects.raw("SELECT * FROM app_person <YOUR JOINS HERE>") 

UPDATE:如果你想用docts值,而不是模型實例,那麼你可以使用direct SQL代替QuerySet操作。配方在文檔中有描述:

def dictfetchall(cursor): 
    "Returns all rows from a cursor as a dict" 
    desc = cursor.description 
    return [dict(zip([col[0] for col in desc], row)) 
      for row in cursor.fetchall()] 

cursor = connection.cursor() 
cursor.execute("SELECT * FROM app_person <YOUR JOINS HERE>"); 
values = dictfetchall(cursor) 
+0

它給我行查詢集。我需要Queryset對象中的值。謝謝 – Nikunj 2015-03-03 07:24:45

+0

查看最新的答案。 – catavaran 2015-03-03 09:16:17