2016-09-08 1 views
1

中に.getクエリセットのクエリを印刷する方法:ジャンゴ中に.getのクエリセットをやったときに、私は</p> <p>は、私がこのモデルの持つクエリを知ることができますどのようにジャンゴ

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 = Artist.objects.filter(name="Eminem") 
print queryset.query 
x = queryset.get() 
+0

セルゲイの答えは正しいです –

+0

@DeanChristianArmada:これはそうではないことを暗示していますか? – RemcoGerlich

+0

実際には、私は実際に.getにだけでなく、クエリを出力する方法もあります。エラーが発生するので疑問に思っていました。 –

関連する問題