1

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

没有名为 urls 的模块。

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

url 的设置有问题还是我需要在我的 app 目录中创建一个新的 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

您指定的 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 回答
0

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

于 2013-01-30T01:21:16.233 回答