django cms apphook - 没有名为urls的模块错误

时间:2011-03-31 02:36:52

标签: python url django-cms

我正在学习django-cms。我尝试制作自定义插件非常成功但是当我尝试将自定义插件挂钩到apphook时,它给了我一个错误,说,

  

没有名为urls的模块   。

我按照django cms sites文档中给出的教程,创建了cms_app.py文件。目前,我的应用程序目录包含为django cms制作自定义插件所需的所有文件,以及cms_app.py的附加文件。

设置网址有问题,还是需要在我的应用目录中创建新的urls.py文件?

我的cms_app.py与教程中给出的完全相同。

编辑 - 1

我使用命令创建了一个名为myproject的项目 -

  

python django-admin.py startproject   myproject的

在参考了为cms提供的教程后,我使用基本命令

创建了一个名为first的插件
  

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

我在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

我已经按照教程中提到的那样重新启动了服务器,但没有成功。 关于我的简单应用程序出了什么问题的任何想法?!

3 个答案:

答案 0 :(得分: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

修改

你需要在“first”文件夹下实际创建urls.py文件...并且你需要一个带有urls.py文件的cms模块。

编辑2

我的基本文件夹结构类似于

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

答案 1 :(得分:0)

您指定的urls模块是否存在并且是否在Python路径中?在您使用该apphook之前,您附加到apphooks的URL必须存在,并且该模块必须是可导入的。

将代码粘贴到某处可以帮助我们。

答案 2 :(得分:0)

听起来很奇怪,但是说'No module named ...'的错误通常意味着你有循环导入,所以基本上你试图导入相同的模块两次