Django ImportError看起来像一个循环

mho*_*ost 0 python django

在我的django项目中,我有以下内容:

apps1/models.py:Post(model)apps2
/ models.py:Blogs(model)apps2
/ functions.py:get_blogs(method)

apps1/models.py文件从apps2/models.py导入博客模型.
apps2/models.py文件从apps2/functions.py导入get_blogs方法.
apps2/functions.py文件从apps1/models.py导入Post模型.

我收到以下错误:

ImportError at /
cannot import name Post

Traceback
admin.autodiscover()
<in file apps1/models.py>
from apps2.models import Blogs
<in file apps2/models.py>
from apps2.functions import get_blogs
<in file apps2/functions.py>
from apps1.models import Post
Run Code Online (Sandbox Code Playgroud)

我认为可能是admin.autodiscover首先导入Post模型然后通过导入循环,它试图再次导入它.虽然我尝试将其更改为:

from apps1.models import Post as OtherPost
Run Code Online (Sandbox Code Playgroud)

但这没有帮助.知道为什么会这样吗?是因为现在有一个循环吗?

kon*_*iik 8

如果导入的唯一原因Blogsapps1.models是,你在有关系领域Post,有关使用一个懒惰的关系,而不是如何?据我所知,这些是专门为处理你正在经历的导入循环而设计的.

这很容易,而不是

from apps2.models import Blogs
...
class Post(models.Model):
    ...
    my_blog = models.ForeignKey(Blogs)
Run Code Online (Sandbox Code Playgroud)

你使用这样的东西:

class Post(models.Model):
    ...
    my_blog = models.ForeignKey("apps2.Blogs")
Run Code Online (Sandbox Code Playgroud)