我有一个Django CMS项目,需要创建一个非CMS应用程序“Achievemnets”。客户希望完全控制页面设计,这意味着页面应该是CMS页面。但是我已经创建了特定的视图来显示页面中的所有achievemtns并单击更多链接,它将详细显示。我需要将它移植到Django CMS我根据Django CMS文档中的CMS App Hook方法尝试过。但它们都不起作用。
请告诉我一个有助于学习CMS App Hooking的教程
答案 0 :(得分:12)
当您将应用程序的URL“挂钩”到Django-CMS页面时,您应用程序的URL和视图功能将从那里接管。
假设您的Django-CMS页面网址为:/ achievement /
在此页面上,您希望显示一个成就列表,该列表将来自您的应用程序。
#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除了您将应用程序挂钩的页面之外,还要跟随之后的。因此,不仅Django-CMS会通过slug为页面提取内容,而且还会将匹配的URL模式移交给您的应用。
我希望这是有道理的。