由于导入机制导致的isinstance()和type()等效失败(python / django)

在我正在研究的Django项目中,我在视图中导入一个表单,如下所示

#views.py
from forms import SomeForm

然后在我的测试文件中

#form_test.py
from app.forms import SomeForm    
.
.
.
self.assertTrue(isinstance(response.context['form'], SomeForm))

为什么这个实例不起作用?

如果我检查两个对象的type()输出,我得到这个:

response.context表单:
预期表格:

我可以通过使views.py中的导入机制与form_test.py中的导入机制相匹配来解决这个问题,但这似乎是错误的方法.

供参考,文件结构如下:

>网站/

> manage.py
> app /

> forms.py
> views.py
>测试/

> form_test.py

最佳答案 isinstance也比较模块位置,response.context [‘form’] class’模块是SomeForm模块app.forms的形式你通过分别检查__class __.__ module__和__module__来检查这个.

要进行实例工作,您可以:

>修复views.py中的导入(推荐)
>在form_testse.py中更改sys.path以便能够从表单导入SomeForm导入表单
>尝试intrapackage references

点赞