【发布时间】:2019-06-04 22:28:06
【问题描述】:
我有一个调用文件解析器(解析文件)的模型,并且该文件解析器调用模型来保存对象。目前,代码如下所示:
models.py
class Source(models.Model):
...
def parse_file(self):
from ingest.parser import FileParser
...
摄取.py
class FileParser()
def save(self):
from models import Source
...
这个“工作”很好,但是,在 save 方法中进行导入会在我第一次使用它时添加大约 0.25s,因为它正在初始化导入。有没有更好的方法来完成上述操作?
【问题讨论】:
-
为什么不在文件顶部导入,而不是在方法内部
-
@VaibhavVishal 否则会给我一个循环导入错误。
-
您是否尝试过使用
get_model函数来通过字符串名称获取模型? -
出于好奇,您最终更喜欢哪种解决方案?
-
@MadPhysicist 我使用了您在下面建议的“将其放在底部”的方法。但是,是否有标准做法可以做到这一点?例如,您是否应该在顶部包含一个注释导入,上面写着“文件底部的实际导入以解决循环依赖关系”,或者您的文件通常看起来像这样实现它?
标签: python django python-3.x