您的位置:首页 > 移动开发

[Django学习]如何得到一个App

2012-08-26 12:08 441 查看
转载自limodou的学习记录

[Django学习]如何得到一个App

这个问题好象很简单,最简单的就是:

from myproj.apps.WhatApp import WhatModel

一般的例子也是这么写的。这里需要注意的是,我们可能把myproj的父目录设置到PythonPath中去了,因此,可以从myproj的父目录开始引用一个包,因此上面没有问题。

如果有人问,如果我不想使用myproj怎么办呢?因为这样与myproj目录关联太死了。我想的一个办法是,将myproj设置到PythonPath中去,这样上面的引用改为:

from apps.WhatApp import WhatModel

这样完全没有project目录了。

今天在 django 的邮件列表又看到一个方法,可能更好:

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: