【发布时间】:2011-04-14 11:16:29
【问题描述】:
总结:
假设我在 Django 中有一个名为“devsite”的项目,它将首先部署到临时项目(也称为“devsite”),最后部署到实时代码库(该项目称为“livesite”)。在实时部署期间,我必须对 urls.py 进行手动更改,以便从正确的项目中导入视图。这意味着“devsite”中的 urls.py 将使用类似:
from devsite import views
“livesite”的 urls.py 将更改为:
from livesite import views
我的解决方案:
以下似乎有效(到目前为止测试有限)。我所做的是在 settings.py 中创建一个变量以从目录中获取项目名称,如下所示:
settings.py
# /settings.py
import os.path
PROJECT_NAME = os.path.basename(os.path.dirname(__file__))
然后用这个在urls.py中导入正确的视图:
urls.py
# /urls.py
from django.conf import settings
website = __import__('%s' % settings.PROJECT_NAME, fromlist=['views'])
...
urlpatterns = patterns('',
(r'^monty/$', website.views.monty),
)
我的问题:
我想知道的是:
- 这是做我想做的事的好方法,还是有更好的编码方法?
- 或者我是否需要重新考虑我的整个部署工作流程?
提前致谢。
【问题讨论】:
标签: django dynamic import views django-urls