簡體   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