小编May*_*y.D的帖子

具有多个应用程序和数据库的单元测试项目 - TEST[DEPENDENCIES] 中的循环依赖

所以我有一个包含多个应用程序的 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)

测试用例 1

python manage.py test app1.tests.testfile1 引发此错误 django.core.exceptions.ImproperlyConfigured: Circular dependency in TEST[DEPENDENCIES]

测试用例 2

我评论了数据库部分:只创建了默认的测试数据库(不是应用程序),并引发了这个错误:

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)

django django-testing django-tests

3
推荐指数
1
解决办法
1521
查看次数

为什么jQuery append()会在字符串中的第一个空格后删除单词

我试图在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 ivar field是有空格的字符串时"Hello world",我的标签和输入将是<label id="Hello" world=""><input value="Hello" world="">.但是,标签文本将正确显示,即<label>Hello world</label>.

我不知道那是什么样的巫术,但我会非常感激任何帮助.提前致谢.

javascript jquery

2
推荐指数
1
解决办法
136
查看次数