2011-10-10 123 views
1

我的模型:尋找正確的行爲

class Question(models.Model): 
    content = models.CharField(max_length=160) 

class Answer(models.Model): 
    content = models.CharField(max_length=260)  
    question = models.ForeignKey(Question) 

如果我想與特定問題的所有答案,但hiting數據庫儘可能少的,我應該使用select_related這樣的:

q = Question.objects.select_related(depth=1).get(id=id)    
answers = q.answer_set.all() 

或者只是:

q = Question.objects.get(id=id)    
answers = q.answer_set.all() 

回答

1

對於回答這種問題,請考慮安裝Django Debug Toolbar。它提供有關處理請求所執行的所有DB查詢的信息,包括每個查詢所花費的時間量。

因此,在您的項目中安裝工具欄,然後瀏覽到您網站上執行查詢的頁面。點擊工具欄查看查詢信息。試試兩種方法,看看哪個更好。

+0

好看的東西。很高興知道存在這樣的事情。謝謝。 – Cadilac