Python 为什么.query()函数不能处理Django ORM查询?
我已经知道,使用Python 为什么.query()函数不能处理Django ORM查询?,python,django,database,Python,Django,Database,我已经知道,使用.query.\uuu str\uuu(),我们可以从Django ORM查询中获得sql等价查询 e、 g:Employees.objects.filter(id=int(id)).query.\uuu str\uuu() 以上代码运行良好&我能够得到与sql等价的查询 但当我在下面的查询中使用相同的方法时,我得到的错误如下所示 Employees.objects.filter(id = int(id)).first().query.__str__() AttributeErr
.query.\uuu str\uuu()
,我们可以从Django ORM查询中获得sql等价查询
e、 g:Employees.objects.filter(id=int(id)).query.\uuu str\uuu()
以上代码运行良好&我能够得到与sql等价的查询 但当我在下面的查询中使用相同的方法时,我得到的错误如下所示
Employees.objects.filter(id = int(id)).first().query.__str__()
AttributeError: 'Employees' object has no attribute 'query'
为什么我现在会出错,有什么建议吗 不返回QuerySet
,它返回一个模型对象。该查询得到了热切的评价
您可以检查Django使用以下工具进行的最后一次查询:
from django.db import connection
print(connection.queries[-1:])
从django.db导入连接
打印(连接.查询[-1:])
也就是说,本质上some\u queryset.first()
通常与some\u queryset
是相同的查询,只是它会限制查询集
注意:请不要使用\uuuu str\uuuuu
,您可以使用str(my\u queryset.query)
,或者只使用打印(my\u queryset.query)
谢谢以上解释澄清了我的疑问,解决了我的问题!