Python ImportError:无法导入名称实体
我有两个模块,如下所示: --models.pyPython ImportError:无法导入名称实体,python,django,Python,Django,我有两个模块,如下所示: --models.py from myapp.filters import EntityFilter class Entity(models.Model): //model definition def someMethod(self): entities = EntityFilter(...) from myapp.models import Entity class EntityFilter(django_filters.FilterSe
from myapp.filters import EntityFilter
class Entity(models.Model):
//model definition
def someMethod(self):
entities = EntityFilter(...)
from myapp.models import Entity
class EntityFilter(django_filters.FilterSet):
class Meta:
model = Entity
// ...
--filters.py
from myapp.filters import EntityFilter
class Entity(models.Model):
//model definition
def someMethod(self):
entities = EntityFilter(...)
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(...)
它很好用…你试过这样做吗
from myapp.models import Entity
class EntityFilter(django_filters.FilterSet):
class Meta:
model = 'Entity'
// ...
您用来解决这个问题的方法很好,在我所看到的python代码中非常常见(至少在循环依赖无法避免的情况下;在没有任何循环依赖需要担心的情况下,这样做也是为了避免过度污染全局命名空间)。有关导入语句在python中如何工作的详细描述,以及您解决此问题的原因,请参阅本网站,该网站在@mata的评论中提到的“python中的循环依赖关系”问题的答案中引用:。是的,它不起作用。我得到了
AttributeError:'str'对象没有属性'\u meta'