You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装mysqlclient后DRF测试出现KeyError: 'ATOMIC_REQUESTS'求助

解决DRF测试套件KeyError: 'ATOMIC_REQUESTS'问题
  • 检查所有数据库配置:确保DATABASES字典中每个数据库(包括新增的MySQL辅助库)都显式配置ATOMIC_REQUESTS字段,无论设为True还是False。Django的make_view_atomic方法会尝试读取每个数据库的该配置,缺失则触发KeyError。示例配置:
DATABASES = {
    'default': {
        'ENGINE': 'django_sql_server',
        'NAME': 'your_sqlserver_db',
        'ATOMIC_REQUESTS': True,
        # 其他SQL Server配置项
    },
    'mysql_aux': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'your_mysql_db',
        'ATOMIC_REQUESTS': False,  # 必须显式声明
        # 其他MySQL配置项
    }
}
  • 强化pytest数据库隔离:除了用@pytest.mark.django_db(databases=["default"])标记测试,还可以在pytest.ini中全局指定默认测试数据库,避免意外加载其他数据库配置:
[pytest]
django_db_databases = default
  • 排查视图跨数据库依赖:如果测试涉及的视图中引用了MySQL辅助库的模型,即使测试用例未实际调用该逻辑,Django加载视图时仍会检查对应数据库的配置。确保这类数据库的ATOMIC_REQUESTS已配置。

  • 重置Django配置缓存:修改配置后重启测试环境,或在项目根目录的conftest.py中添加以下代码强制重新加载配置:

import django
django.setup()

内容的提问来源于stack exchange,提问作者Fonnae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 10:52:43