gpt4 book ai didi

python - 在 pycharm 的标准输出中查看 django.db.backends 日志

转载 作者:行者123 更新时间:2023-11-28 21:21:25 25 4
gpt4 key购买 nike

我在 Pycharm 上遇到问题。

当我运行测试时,我无法在 stdout/stderr 上显示 django.db.backends 日志。

当我使用 runserver 时,它就像一个魅力。

您是否有任何简单的解决方案来在我的测试

的标准输出上显示所有带有 level=DEBUG 的日志?

更多信息:

  • 我的 DEBUG 在我的设置中设置为 True
  • 我使用 SOUTH_TESTS_MIGRATE = FalseSKIP_SOUTH_TESTS = True

谢谢

最佳答案

首先,django 在 UnitTest ( Writing and running tests in Django ) 期间将 settings.DEBUG 强制设置为 False。因此,您应该使用 override_settings 装饰器激活临时此设置:

来自 django 文档:

from django.test import TestCase
from django.test.utils import override_settings

class LoginTestCase(TestCase):

@override_settings(LOGIN_URL='/other/login/')
def test_login(self):
response = self.client.get('/sekrit/')
self.assertRedirects(response, '/other/login/?next=/sekrit/')

但是阅读django源码,也可以设置connection对象的use_debug_cursor属性。如果设置为 True,将使用 CursorDebugWrapper 并显示查询日志。

从 django 源代码中提取(django/db/backends/__init__.py):

class BaseDatabaseWrapper(object):
# [...]
def cursor(self):
self.validate_thread_sharing()
if (self.use_debug_cursor or
(self.use_debug_cursor is None and settings.DEBUG)):
cursor = self.make_debug_cursor(self._cursor())
else:
cursor = util.CursorWrapper(self._cursor(), self)
return cursor

def make_debug_cursor(self, cursor):
return util.CursorDebugWrapper(cursor, self)

关于python - 在 pycharm 的标准输出中查看 django.db.backends 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21476632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com