2014-09-01 31 views
0

我有多个应用程序。我想根据settings.py来运行它们,这意味着我有多个settings_x.py。我运行服务器例如像这样:django - 应用程序不在INSTALLED_APPS,但其views.py正在运行

python manage.py runserver --settings=myproj.settings_1.py 

for app1。

如果我运行

python manage.py runserver 

应采取默认的settings.py,我因此未在INSTALLED_APPS定义任何应用程序,它应该给我的错误说,该模块APP1不列入存在,因为

#urls.py 
urlpatterns = patterns('app1.views',#<---- app1 isn't in the settings.py 
    url(r'^$', 'startpage', name='startpage'), 
) 

但它要去app1.views里面startpage函数。

这是为什么?我错过了什么吗?

+0

你确定你的wsgi.py文件指向正确的默认设置文件吗?在'os.environ ['DJANGO_SETTINGS_MODULE']'行中? – 2014-09-01 11:39:10

+0

@GabrielAmram我在本地开发服务器,但wsgi真的显示为默认settings.py。 – doniyor 2014-09-01 11:54:11

+0

是的,我应该知道你在当地的环境。这个设置在'manage.py'文件中也是如此吗? – 2014-09-01 11:56:58

回答

3

没有理由不这样做。视图可以来自任何地方,根本不必在应用程序中:它们只需要从Python路径访问。

+0

哦,我不知道。我想根据settings.py中的应用对url''/ test /''使用不同的视图,我该怎么做? – doniyor 2014-09-01 12:29:31

+0

我只需要重写“ROOT_URLCONF”来显示不同的urls.py,对吧? – doniyor 2014-09-01 12:38:37

1

转到一个不存在的网址(http://localhost:8000/ksjfklsdfj)和django应该给你一个有效的URL模式列表,也许这给你一个提示?

另外manage.py diffsettings为您提供Django看到它的设置列表。这也可能告诉你,如果你以某种方式混淆了某些东西。

+0

非常有用的提示,谢谢你 – doniyor 2014-09-01 12:50:13

相关问题