1

私はdjango-cmsを学んでいます。私は非常に成功したカスタムプラグインを作成しようとしましたが、カスタムメイドのプラグインを apphook にフックしようとすると、次のようなエラーが表示されました。

urls という名前のモジュールがありません。

django cms サイトのドキュメントに記載されているチュートリアルに従い、cms_app.py ファイルを作成しました。現在、私のアプリケーション ディレクトリには、django cms のカスタム プラグインを作成するために必要なすべてのファイルと、cms_app.py の追加ファイルがあります。

URL の設定に問題がありますか、それともアプリ ディレクトリ内に新しい urls.py ファイルを作成する必要がありますか?

私の cms_app.py は、チュートリアルで指定されているものとまったく同じです。

編集 - 1

コマンドを使用して myproject というプロジェクトを作成しました -

python django-admin.py startproject myproject

cms のチュートリアルを参照した後、基本的なコマンドを使用して、first というプラグインを作成しました。

最初に python manage.py startapp

現在、プラグインは完全に機能しており、apphook を試行する前のディレクトリ構造は、

first/
    __init__.py
    cms_plugins.py
    models.py
    tests.py
    views.py

apphook でアプリをフックしようとすると、ディレクトリ構造は次のようになります。

first/
    __init__.py
    cms_app.py
    cms_plugins.py
    models.py
    tests.py
    views.py

私の cms_app.py は次のとおりです。

from cms.app_base import CMSApp
from cms.apphook_pool import apphook_pool
from django.utils.translation import ugettext_lazy as _

class FirstApp(CMSApp):
    name = _("First App") # give your app a name, this is required
    urls = ["first.urls"] # link your app to url configuration(s)

apphook_pool.register(FirstApp) # register your app

myproject フォルダーに urls.py ファイルがあり、次のとおりです。

from django.conf.urls.defaults import *
from django.contrib import admin
from django.conf import settings


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

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'myproject.views.home', name='home'),
    # url(r'^myproject/', include('myproject.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
        url(r'^admin/', include(admin.site.urls)),
    url(r'^', include('cms.urls')),

)

if settings.DEBUG:
    urlpatterns = patterns('',
        (r'^' + settings.MEDIA_URL.lstrip('/'), include('appmedia.urls')),
    ) + urlpatterns

チュートリアルで述べたようにサーバーを再起動しましたが、成功しませんでした。私の単純なアプリの何が問題なのかについてのアイデアはありますか?!

4

3 に答える 3

0

奇妙に聞こえますが、'No module named ...'通常、循環インポートがあることを意味するというエラーは、基本的に同じモジュールを2回インポートしようとしていることを意味します

于 2013-01-30T01:21:16.233 に答える
0

指定した urls モジュールが存在し、Python パスにあるか? apphook にアタッチする URL は、その apphook を使用する前に存在している必要があり、モジュールはインポート可能である必要があります。

コードをどこかに貼り付けると、私たちがあなたを助けるのに役立ちます。

于 2011-03-31T07:07:35.680 に答える
0

このチュートリアルを行っていると思います:

http://docs.django-cms.org/en/2.1.3/getting_started/tutorial.html

私はこのプロジェクトの最新のものを持っていませんが、次のようなことをしなければならないことは知っています:

http://docs.django-cms.org/en/2.1.3/getting_started/tutorial.html#url-configuration

編集

「最初の」フォルダーの下に実際にurls.pyファイルを作成する必要があります...そして、urls.pyファイルを含むcmsモジュールが必要です。

編集2

私のベースフォルダー構造は次のようになります

src/
    cms/
    __ init__.py
    manage.py
    urls.py
    views.py
于 2011-03-31T04:42:56.157 に答える