如何在django中打印.get queryset的查询

时间:2016-09-08 08:50:47

标签: python django

在django

中执行.get查询集时如何知道查询

我有这个型号:

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

我在shell中做到了这一点:

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

然后我收到了错误:

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

2 个答案:

答案 0 :(得分:11)

.get返回一个实例,而不是一个查询集。

要查看已完成的查询,请执行相同的操作,但使用.filter,它会返回查询集:

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

答案 1 :(得分:5)

from django.db import connection

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