Django CMS 应用钩子的教程

6 投票
1 回答
4333 浏览
提问于 2025-04-17 12:57

我有一个Django CMS项目,需要创建一个非CMS应用程序“Achievements”(成就)。客户希望对页面设计有完全的控制权,这意味着这个页面应该是一个CMS页面。不过,我已经创建了特定的视图来展示所有的成就,点击“更多”链接后可以查看详细信息。我需要把它移植到Django CMS上。我按照Django CMS文档中的CMS应用钩子方法尝试过,但都没有成功。

请告诉我一个好的教程,适合学习CMS应用钩子的内容。

1 个回答

12

当你把一个应用的URL连接到Django-CMS页面时,你的应用的URL和视图函数就会接管后面的事情。

假设你的Django-CMS页面的URL是:/achievements/

在这个页面上,你想展示一个成就列表,这些成就信息会来自你的应用。

#your_app.urls
from django.conf.urls.defaults import url, patterns

urlpatterns = patterns('your_app.views',
    (r'^$', 'index'),
)

#your_app.views
from django.shortcuts import render

from your_app.models import Achievement

def index(request):
    achievements = Achievement.objects.all()
    return render(request, 'achievements/index.html',
        {'achievements' : achievements})

你写的Django-CMS应用钩子会告诉Django-CMS在你连接的页面之后要跟随哪些URL。所以,不仅Django-CMS会根据页面的标识符来获取内容,它还会把匹配的URL模式交给你的应用处理。

希望这样解释能让你明白。

撰写回答