转载自
这个问题好象很简单,最简单的就是:
from myproj.apps.WhatApp import WhatModel
一般的例子也是这么写的。这里需要注意的是,我们可能把myproj的父目录设置到PythonPath中去了,因此,可以从myproj的父目录开始引用一个包,因此上面没有问题。
如果有人问,如果我不想使用myproj怎么办呢?因为这样与myproj目录关联太死了。我想的一个办法是,将myproj设置到PythonPath中去,这样上面的引用改为:
from apps.WhatApp import WhatModel
这样完全没有project目录了。
今天在 的邮件列表又看到一个方法,可能更好:
from django.db.models.loading import get_app
desired_app = get_app(‘desired_app’) from desired_app.models import SomeModel
这是使用 django 提供的 get_app 的方法来实现的。因此这样就不需要考虑目录结构,完全是一种逻辑上的关系了。这种方法不错。当然除了 get_app 之外,如果是为了导入 model 还可以有其它的方法来更方便导入,如:
from django.db.models.loading import get_model
SomeModel = get_model(app_label, model_label)