Django怎么看生成的SQL查询?

lea*_*ner 5 python django

我有一个表单,它接收数据,并应该将其插入数据库.当我处理该表单时,它给我一个值错误,但是当我去数据库并尝试手动插入它时它工作正常.

为了调试这种情况,我想看看Django正在生成哪些查询失败.在调试网页上,我没有看到类似SQL查询的内容.

如何查看Django生成的实际查询?

请指教.谢谢.

Jay*_*und 13

如何使用日志记录?

你可以在settings.py中添加它

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

你可以在任何views.py中添加它

import logging

l = logging.getLogger('django.db.backends')
l.setLevel(logging.DEBUG)
l.addHandler(logging.StreamHandler())
Run Code Online (Sandbox Code Playgroud)

在控制台中,您可以检查SQL查询.

其他方式

去壳

python manage.py shell

>>from yourmodel import Example
>>queryset = Example.objects.all()
>>print(queryset.query)
Run Code Online (Sandbox Code Playgroud)

你可以看到原始查询字符串.