0

新しいアプリを Django に追加する際に問題が発生しています。

urls.py の 1 行で管理者が壊れています。どの行かは正確にわかっています。インクルードする場所です('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'),
)

このモジュールがインポートされない理由を知っている人はいますか? wiki ディレクトリには以下が含まれます。

__init__.py
forms.py
models.py
urls.py
views.py

編集: admin.autodiscover() を urls.py の一番下に移動しようとしましたが、変更はありません。import_module の django/utils/importlib.py の 35 行目 __ import __(name) で例外が発生し、このバグが他のアプリで複数のエラーを引き起こしています。他のインストール済みアプリはまだ機能すると言いましたが、それらがエラーを返すことがわかりました。私の投票アプリ (はい、標準の 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',
)
4

2 に答える 2

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 つのディレクトリを移動し、apps ディレクトリを見つけました。

于 2013-03-13T15:40:38.297 に答える
0

パラメータに追加apps.wikiしましたか?settings.pyINSTALLED_APPS

admin.autodiscover()その行を の一番下に移動してurls.py、そのファイルの最後の行になるようにします。( 2079898に基づく)

于 2013-02-27T21:01:49.857 に答える