ImportError:无法导入名称实体

2024-10-06 11:17:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个模块,像这样:

--模型.py

from myapp.filters import EntityFilter
class Entity(models.Model):
   //model definition

   def someMethod(self):
      entities = EntityFilter(...)

--过滤器.py

^{pr2}$

显然,我得到了错误ImportError:无法导入名称实体

我应该如何重新组织我的代码?在

你觉得这个解决方案怎么样?可以吗?在

class Entity(models.Model):
   //model definition

   def someMethod(self):
      from myapp.filters import EntityFilter
      entities = EntityFilter(...)

它工作得很好。。。在


Tags: frompyimportselfmodelmodelsdefmyapp
2条回答

你试过这么做吗?在

from myapp.models import Entity
class EntityFilter(django_filters.FilterSet):
    class Meta:    
        model = 'Entity'
        // ...

您用来解决问题的方法很好,在我见过的python代码中非常常见(至少当循环依赖关系无法避免时;这样做也是为了避免在没有任何循环依赖关系时过度污染全局命名空间)。有关导入语句在python中如何工作以及为什么您的工作解决了这个问题,请参阅这个站点,在上面的@mata的评论中提到了“python中的循环依赖”问题的答案:http://effbot.org/zone/import-confusion.htm。在

相关问题 更多 >