Skip to main content
 首页 » 编程设计

python之django 子应用程序中的循环导入

2025年05月04日33TianFang

我正在做一个 django 项目,我有以下设置

project 
    /products 
        /product1 
            /models.py 
            /forms.py 
        /productN 
    /otherapps 
 
#models.py 
from .forms import foo 
... 
 
#forms.py 
from .models import bar 

您会看到循环导入。我尝试了多种组合,但我似乎无法做到正确。我不想将 forms.py 中的代码移动到 models.py

我试过:

from products import * 
from products.product1 import * 
from products.product1.form import * 
 
import products 
import products.product1 
import products.product1.form 

一些帮助将不胜感激。

请您参考如下方法:

在 models.py 中移动你的

from .forms import foo 

到真正需要使用foo的方法里面。这将在调用该方法之前停止导入,而不是在导入 models.py 后立即停止导入。这不是最佳实践,如果您在很多地方使用 foo,那么维护起来会很痛苦,但它应该可以修复循环导入。