我有一个带有两个应用程序的django项目,我还希望通过Heroku的作业调度工具进行预定作业,这些工具可以处理一些常规的数据库操作。
为了处理预定作业的任务,我在顶级django项目文件夹中有一个单独的包。此软件包需要访问我的应用程序中定义的模型。但是,我无法找到如何从我的应用程序导入模型。
结构如下:
myproject
|
| myproject
| | __init__.py
| | ...
| myapp1
| | __init__.py
| | models.py
| | ...
| myapp2
| | __init__.py
| | models.py
| | ...
| customjobmodule
| | __init__.py
| | ...
| ...
我尝试了几种使用sys.path.append()导入的方法,但它们似乎都不起作用。他们都说没有名为myapp1.models的模块
import os
import sys
cwd = os.getcwd()
sys.path.append(cwd + '/../myapp1/')
from myapp1.models import Model1
ImportError: No module named myapp1.models
有办法做到这一点吗?在搜索时我发现了很多关于在django应用程序之间使用模型的信息,但是没有在django框架之外使用它们。
答案 0 :(得分:2)
您应该可以使用intra-package references
如:
from ..myapp1 import models
来自文档:
从Python 2.5开始,除了上面描述的隐式相对导入之外,您还可以使用import语句的from module import name形式编写显式相对导入。这些显式相对导入使用前导点来指示相对导入中涉及的当前和父包。