我正在学习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
我已经按照教程中提到的那样重新启动了服务器,但没有成功。 关于我的简单应用程序出了什么问题的任何想法?!
答案 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 ...'
的错误通常意味着你有循环导入,所以基本上你试图导入相同的模块两次