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

在Django单元测试中导入SeekingConstants报错:找不到models模块

Django单元测试导入自定义类报错:ModuleNotFoundError: No module named 'models'

问题场景

在Django单元测试中尝试导入自定义的SeekingConstants类时,触发以下错误:

ModuleNotFoundError: No module named 'models'

models.py代码片段

class SeekingConstants:
    MEN = 'Men'
    WOMEN = 'Women'
    BOTH_MEN_AND_WOMEN = 'Both men and women'

test_user_api.py代码片段

from models import SeekingConstants
...
def test_update_user_seeking_choice(self):
    """Part 1: Update the seeking choice from nothing"""
    payload = {
        'email': 'test@example.com',
        'seeking_choice': SeekingConstants.WOMEN
    }

    res = self.client.patch(ME_URL, payload)

    self.user.refresh_from_db()
    self.assertEqual(self.user.email, payload['email'])
    self.assertTrue(self.user.seeking_choice, payload['seeking_choice'])
    self.assertEqual(res.status_code, status.HTTP_200_OK)

    """Part 2: Update an existing seeking choice"""

    new_payload = {
        'email': 'test@example.com',
        'seeking_choice': SeekingConstants.BOTH_MEN_AND_WOMEN
    }

    res = self.client.patch(ME_URL, new_payload)

    self.user.refresh_from_db()
    self.assertEqual(self.user.email, payload['email'])
    self.assertTrue(self.user.seeking_choice, payload['seeking_choice'])
    self.assertEqual(res.status_code, status.HTTP_200_OK)

项目目录结构:

你的项目/
└── users/
    ├── models.py
    └── tests/
        └── test_user_api.py

错误原因

当前导入语句from models import SeekingConstants试图从Python顶级模块路径查找models模块,但你的models.py属于users应用,测试文件位于users/tests目录下,直接写models会导致Python无法定位正确的模块。

正确导入方式

方法1:绝对导入(推荐,符合Django规范)

用应用名作为前缀,明确指定模块路径:

from users.models import SeekingConstants

方法2:相对导入

利用相对路径指向同一应用内的models模块:

from ..models import SeekingConstants

额外提示

测试代码存在一处逻辑错误:self.assertTrue(self.user.seeking_choice, payload['seeking_choice'])用法有误,assertTrue用于判断表达式是否为真,这里应该用self.assertEqual验证值相等:

self.assertEqual(self.user.seeking_choice, payload['seeking_choice'])

内容的提问来源于stack exchange,提问作者code writer 3000

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 02:35:10