加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 11:23:07 所属栏目:Python 来源:网络整理
导读:在我正在研究的Django项目中,我在视图中导入一个表单,如下所示 #views.pyfrom forms import SomeForm 然后在我的测试文件中 #form_test.pyfrom app.forms import SomeForm ...self.assertTrue(isinstance(response.context['form'],SomeForm)) 为什么这个实
在我正在研究的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读