django - 检查 Django 生成的查询

标签 django django-orm

我如何检查 django 1.4.11 为此查询生成了哪个查询:

obj = Model.objects.get(code='code')

我已经尝试过:

print Model.objects.get(code='code').query

但是模型对象有这样的方法。 如何获取原始sql?

最佳答案

它不起作用,因为queryQueryset对象的一个​​属性,当您执行.get()时,Queryset它已评估(并成为模型的实例)

如果你尝试:

>>> type(Model.objects.get(code='code'))
<class 'app.models.Model'>
>>> print Model.objects.get(code='code').query
AttributeError: 'Model' object has no attribute 'query'

但是改为:

>>> type(Model.objects.all())
<class 'django.db.models.query.QuerySet'>
>>> print Model.objects.all().query
SELECT "model.Model" from ...

现在,要获取所有查询的 SQL,您有多种选择:

关于django - 检查 Django 生成的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24801436/

相关文章:

sql - 当顺序很重要时查询成功尝试的分组

python - Django 数组字段。如何通过 django admin 保存嵌套的时间数组?

Django ORM : checking if a field is blank or filled

python - Django Rest Framework - 如何重组 json 响应?

python - 如何从Python中的JSON对象获取数据数组?

Django 并发编辑

django - 重写CreateAPIView,访问请求用户

python - 我怎样才能跟随一个 Django 反向外键,然后跟随另一个反向外键?

python - Django ORM - 获取最大分组依据

django - 如果应用程序与 Django 一起安装,则调整 View