我正在尝试使用此代码段为我的django测试运行器实现线程化实时测试服务器。我们有自定义sql_flush函数,我们想在每个测试用例执行后调用它。当我不使用上面的代码片段(没有多线程方法)时它工作正常,但是当我将上面的代码片段放到我的设置文件中时,从django库调用默认的sql_flush。以下是代码段。你能帮我解决这个问题吗?
from django.core.servers.basehttp import WSGIServer
from django.test import testcases
from django.utils.six.moves import socketserver
testcases.WSGIServer = type(str('WSGIServer'),
(socketserver.ThreadingMixIn, WSGIServer), {})
from django.core.management import sql
sql.sql_flush = sql_flush_without_cms #this is custom flush function
这是我面临的错误:
CommandError:数据库test_db无法刷新。可能 原因: *数据库未运行或未正确配置。 *至少有一个预期的数据库表不存在。 * SQL无效。 提示:查看' django-admin.py sqlflush'的输出。这就是SQL 这个命令无法运行。 完整错误:无法截断外键中引用的表 约束 详情:表" authtoken_token"引用" users_userprofile"。 提示:截断表" authtoken_token"同时,或使用 TRUNCATE ... CASCADE。