django cms apphook - ошибка модуля с именем urls - PullRequest
1 голос
/ 31 марта 2011

Я учу джанго-смс.Я попытался создать пользовательский плагин, который был довольно успешным, но когда я попытался подключить мой пользовательский плагин к 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, я сначала создал плагин, используя базовую команду

python manage.py startapp first

Теперь плагин работает превосходно, и структура каталогов до попытки приложения 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

У меня есть файл urls.py в папке myproject, и он выглядит следующим образом:

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

Я перезапустил сервер, как было упомянуто в руководстве, но ничего не вышлоESS.Любые идеи относительно того, что не так с моим простым приложением?!

Ответы [ 3 ]

0 голосов
/ 31 марта 2011

Существует ли указанный вами модуль urls и находится ли он в вашем пути Python?URL-адреса, которые вы прикрепляете к apphooks, должны существовать до того, как вы сможете использовать этот apphook, и модуль должен быть импортируем.

Вставка вашего кода куда-нибудь поможет нам помочь вам.

0 голосов
/ 30 января 2013

Звучит странно, но ошибка «1001 *» обычно означает, что у вас есть циклический импорт, поэтому вы пытаетесь импортировать один и тот же модуль дважды

0 голосов
/ 31 марта 2011

Я предполагаю, что вы делаете этот урок:

http://docs.django -cms.org / ен / 2.1.3 / Getting_Started / tutorial.html

У меня нет последней версии этого проекта, но я знаю, что вы должны сделать что-то вроде этого шага:

http://docs.django -cms.org / о / 2.1.3 / Getting_Started / tutorial.html # URL-конфигурация

EDIT

вам нужно сделать файл urls.py в «первой» папке ... и вам нужен модуль cms с файлом urls.py.

РЕДАКТИРОВАТЬ 2

структура моей базовой папки выглядит примерно так:

src/
    cms/
    __ init__.py
    manage.py
    urls.py
    views.py
...