繁体   English   中英

如何从Django BASE_DIR外部导入模型

[英]How to import models from outside Django BASE_DIR

我正在开发一个Django应用程序,我想在其中将一些类/函数从generator.py导入到views.py中,以处理用户提交的输入。 我的文件夹结构如下所示:

project/
   models/
      __init__.py
      generator.py
   web/
      django/
         __init__.py
         settings.py
         urls.py
         wsgi.py
      django_app
         __init__.py
         views.py
         etc.

在views.py内部,我有

from ...models.generator import Generator

当我尝试运行服务器时,得到的是:

ValueError: attempted relative import beyond top-level package

我已经看到了很多答案,但是大多数答案都是关于操纵sys.path或更改PYTHONPATH的。 我不确定怎么做以及在哪里做,因为我是Django的新手。

谁能确切告诉我要执行哪些命令才能完成导入?

python的导入基于sys.path ,并且不能在顶级目录之外。 更多信息

这意味着,如果在sys.path附加BASE_DIR路径的顶部,则可以导入。 但这是一个棘手的方法。

def import_function():
    import sys
    sys.path.append(os.path.dirname(BASE_DIR))
    module = __import__('models.generator')  # import code
    sys.path.pop()
    return module

g_module = import_function()
g_module.Generator

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM