ImportError:无法导入名称Entity

时间:2013-04-26 12:52:32

标签: python django

我有两个模块,如:

- models.py

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

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

- filters.py

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

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

我应该如何重组我的代码?

您对此解决方案有何看法?可以吗?

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

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

工作正常......

2 个答案:

答案 0 :(得分:0)

你试过这个吗?

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

答案 1 :(得分:0)

您用来解决问题的方法很好,在我看过的python代码中很常见(至少在无法避免循环依赖时;它也是为了避免过度污染全局命名空间)当没有任何循环依赖关系时要担心)。有关导入语句如何在python中工作的详细描述,以及解决问题的原因,请参阅本网站,在@mata评论中注明的“Python中的循环依赖”问题的答案中引用:{{ 3}}