2

正如另一个 SO 帖子所示,我的 Django 1.4 目录结构全局如下所示:

wsgi/
   champis/
       settings.py
       settings_deployment.py
       urls.py
   site/
       static/
           css/
               app.css
       templates/some_app/foo.html
       __init__.py
       urls.py
       views.py
       models.py
   manage.py

项目是champis,应用程序是site。我的PYTHONPATH包含该wsgi文件夹(从 Django 标准来看,它应该以项目 ie 命名champis,但这里我从Openshift django-example Git 项目开始)。

我的champis.urls

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^champis/', include('site.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

然后我的site.urls模块路由到特定页面,但是当尝试在本地访问时,出现错误:

http://127.0.0.1/champis => no module name site.urls

site应用程序存在于 my 中INSTALLED_APPS,而 myROOT_URLCONF存在于champis.urls. 你知道为什么吗?即使将site文件夹移入champis其中也无济于事。

4

1 回答 1

1

我终于设法通过以下方式解决了这个问题:

  • __init__.py在项目级别添加
  • 将我的site应用程序重命名为web(应用程序名称似乎与......我没有找到的东西发生冲突)

这是我现在的当前目录结构:

wsgi/
   champis/
       settings.py
       settings_deployment.py
       urls.py
   web/                <= changed app name
       static/
           css/
               app.css
       templates/some_app/foo.html
       __init__.py
       urls.py
       views.py
       models.py
   manage.py
   __init__.py         <= added
于 2013-10-28T11:16:51.003 回答