ı有一个django项目,我需要访问django主项目文件夹下我文件夹中的一些模型。让我说明一下。
src\
main\
urls.py
models.py
view.py
lib\
__init__.py
helper.py
这是示例文件夹结构,我需要在helper.py中导入一些主应用程序模型类。我试过这些:
from main.models import exampleClass
from ..main.models import exampleClass
我还尝试在主项目文件夹中添加__init__.py
文件:
src\
...
main\
lib\
__init__.py
总是错误2种:
1)ValueError:相对导入错误 2)没有模块名称..
我需要解决方案并需要很好的解释为什么我总是失败。非常感谢你们。
答案 0 :(得分:1)
在__init__.py
文件夹而不是main
文件夹中添加src
。然后尝试使用from main.models import exampleClass
导入。它应该工作。
答案 1 :(得分:0)
你是如何设置$ PYTHONPATH变量的?搜索路径与此环境变量相关。
因此,如果要指定main.models
之类的路径,则应包含src
目录。
请注意,您还可以使用sys.path
数组进行管理。
Django通常会将所有应用程序添加到sys.path
。您可以尝试在settings.py
文件中打印它以获得想法。
要从项目的settings.py文件添加路径,您可以执行以下操作:
import os.path
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.append(os.path.join(BASE_DIR, "../lib"))
例如,如果您的lib
目录与包含settings.py
文件的目录处于同一级别。
答案 2 :(得分:0)
如果..
和main
都是django的应用,并且您已在lib
设置中注册了这些应用,那么您不需要INSTALLED_APPS
。
如果main
和lib
与manage.py
处于同一级别:
src/
main/
...
lib/
...
manage.py
...
你只需要:
from main.models import exampleClass