【问题标题】:Check query Django generates检查 Django 生成的查询
【发布时间】:2014-09-08 04:48:51
【问题描述】:

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

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

我试过了:

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

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

【问题讨论】:

    标签: django django-orm


    【解决方案1】:

    它不起作用,因为query 是Queryset 对象的属性,当您执行.get() 查询集时,它会被评估(并成为模型的实例)

    如果你尝试:

    >>> 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,您有多种选择:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-14
      • 2017-04-06
      • 1970-01-01
      • 2019-05-03
      • 2021-08-11
      • 1970-01-01
      • 2013-02-25
      • 2013-08-21
      相关资源
      最近更新 更多