django cms apphook - 无法找到名为urls的模块错误
我正在学习django-cms。我尝试制作一个自定义插件,结果还算成功,但当我试图把这个自定义插件连接到apphook时,出现了一个错误,提示:
没有名为urls的模块。
我按照django cms网站文档中的教程创建了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 个回答
听起来有点奇怪,但错误信息 'No module named ...'
通常意味着你有循环导入的问题,也就是说你试图导入同一个模块两次。
你指定的urls模块存在吗?它在你的Python路径中吗?你连接到apphooks的urls必须在使用这个apphook之前就存在,而且这个模块必须是可以被导入的。
把你的代码贴出来会更方便我们帮你解决问题。
我猜你正在做这个教程:
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