2016-09-08 44 views
1

我怎麼能知道查詢在Django做一個不用彷徨查詢集時如何打印不用彷徨查詢集的查詢在Django

我有這樣的模式:

class Artist(EsIndexable, models.Model): 
    name = models.CharField(max_length=50) 
    birth_date = models.DateField() 

而我在這樣做外殼:

x = Artist.objects.get(name="Eminem") 
print x.query 

然後我得到了錯誤:

AttributeError: 'Artist' object has no attribute 'query' 

回答

4
from django.db import connection 

x = Artist.objects.get(name="Eminem") 
print connection.queries[-1] 
+0

大答案!!!! –

+0

然後您應該接受它;) –

+1

請注意,這隻適用於開發。 –

5

.get返回一個實例,而不是查詢集。

一看就知道是做查詢,做同樣的事情,但與.filter,這並返回一個QuerySet:

queryset = Artist.objects.filter(name="Eminem") 
print queryset.query 
x = queryset.get() 
+0

謝爾蓋的回答是正確的 –

+0

@DeanChristianArmada:暗示這一個不是? – RemcoGerlich

+0

實際上,我真的是如何打印出查詢,而不僅僅是.get,因爲它只是導致錯誤 –