所以我有一个包含多个应用程序的 django 项目。
每个应用程序都使用自己的数据库,并且共享一个包含 Django 表(例如 auth、sessions)的公共数据库。
为此,我有几个数据库路由器,所以我的设置如下所示:
DATABASES = {
'default': {
..
},
'app1_db': {
..
},
'app2_db':{
..
}
}
DATABASE_ROUTERS = ["site.db_router.App1Router", "site.db_router.App2Router"]
# no router for default database
Run Code Online (Sandbox Code Playgroud)
每个应用程序还进行了单元测试。为了解决我的问题,我提取了一个应用程序。它包含一个带有四个测试文件的测试模块。一号测试文件如下所示:
class ExcelTestCase(TransactionTestCase):
databases = ["app1_db"]
# some tests
Run Code Online (Sandbox Code Playgroud)
python manage.py test app1.tests.testfile1 引发此错误 django.core.exceptions.ImproperlyConfigured: Circular dependency in TEST[DEPENDENCIES]
我评论了数据库部分:只创建了默认的测试数据库(不是应用程序),并引发了这个错误:
AssertionError: Database queries to 'app1_db' are not allowed in this test. Add 'app1_db' to app1.tests.testfile1.ExcelTestCase.databases to ensure proper test isolation and silence this …Run Code Online (Sandbox Code Playgroud) 我试图在ajax请求后动态生成表单.以下是相关代码示例:
for (var i in response.responseJSON[0].fields) {
var field = response.responseJSON[0].fields[i];
$('#properties_form').append('<label for=' + i + '>' + i + '</label>' +
'<input id=' + i + ' value=' + field + '>');
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,当var i和var field是有空格的字符串时"Hello world",我的标签和输入将是<label id="Hello" world="">和<input value="Hello" world="">.但是,标签文本将正确显示,即<label>Hello world</label>.
我不知道那是什么样的巫术,但我会非常感激任何帮助.提前致谢.