作为this other SO post shows,我的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标准,它应该以项目命名,即champis,但这里我从Openshift django-example Git project开始)。

我的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中存在INSTALLED_APPS应用,而我的ROOT_URLCONFchampis.urls
你知道为什么吗?即使将site文件夹移到champis文件夹中也无济于事。

最佳答案

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


在项目级别添加__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

关于python - Django-没有模块名称site.urls,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19446580/

10-13 07:24