在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'
答案 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]