我在向Django添加新应用时遇到问题。
urls.py中的一行打破了管理员,我确切地知道哪一行,它是我所包含的地方('apps.wiki.urls')
urls.py
from django.conf.urls.defaults import patterns, include, url
from django.views.generic.simple import redirect_to, direct_to_template
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', direct_to_template, { "template" : "welcome.html"}),
url(r'^accounts/', include('registration.backends.default.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^examples/', include('apps.examples.urls')),
url(r'^polls/', include('apps.polls.urls')),
url(r'^wiki/', include('apps.wiki.urls')), #Commenting out this line restores admin
)
其他应用仍然有效。如果我进入我的民意调查页面,它就可以了。示例和帐户应用程序也有效。 / wiki /页面返回与/ admin /相同的ImportError,但在此行上模板渲染期间出现错误:
<a href="{% url wiki_article_add %}">Create new article</a>
以下是未能包含的wiki.urls.py文件:
from django.conf.urls.defaults import *
from apps.wiki.models import Article
urlpatterns = patterns('',
url(r'^$',
'django.views.generic.list_detail.object_list',
{
'queryset': Article.published.all(),
},
name='wiki_article_index'),
url(r'^article/(?P<slug>[-\w]+)$',
'django.views.generic.list_detail.object_detail',
{
'queryset': Article.objects.all(),
},
name='wiki_article_detail'),
url(r'^history/(?P<slug>[-\w]+)$',
'wiki.views.article_history',
name='wiki_article_history'),
url(r'^add/article$',
'wiki.views.add_article',
name='wiki_article_add'),
url(r'^edit/article/(?P<slug>[-\w]+)$',
'wiki.views.edit_article',
name='wiki_article_edit'),
)
任何人都知道为什么这个模块不导入?维基目录包含:
__init__.py
forms.py
models.py
urls.py
views.py
编辑:我尝试将admin.autodiscover()移到urls.py的底部,没有变化。 在import_module,第35行,__ import __(name)中的django / utils / importlib.py中发生异常,并且此错误导致其他应用程序中出现多个错误。我说其他安装的应用程序仍然有用,但我发现它们返回错误。我的民意调查应用程序(是的,标准的Django入门民意调查应用程序)将在我提交投票时返回相同的错误。我应该发布完整的跟踪吗?
这是我的INSTALLED_APPS设置
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.markup',
'django.contrib.staticfiles',
'django.contrib.admin',
'djcelery',
'bootstrap_toolkit',
'registration',
'apps.examples',
'apps.polls',
'apps.wiki',
'south',
)
答案 0 :(得分:1)
http://codespatter.com/2009/04/10/how-to-add-locations-to-python-path-for-reusable-django-apps/
相信此解决方案的上述链接。
隐藏在“apps”目录中的可重用应用程序没有作为我的python路径的一部分被选中。将其添加到您的设置文件以解决问题。
import sys
PROJECT_ROOT = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(PROJECT_ROOT, "../apps"))
我的设置在他们自己的目录中,因此我使用“../apps”导航一个目录以查找应用程序目录
答案 1 :(得分:0)
您是否已将apps.wiki
添加到参数settings.py
上的INSTALLED_APPS
?
并尝试将admin.autodiscover()
行向下移动到urls.py
的最底部,以便它是该文件中的最后一行。 (基于2079898)