我有一个Django CMS 2.4网站,当检测到移动用户代理时,我切换到不同的URL设置,并为移动用户提供不同的页面。现在,我想使用相同的内容,但使用不同的模板移动和桌面版本,所以我不需要做编辑在两个地方,所以URL将保持不变的两个版本。我知道在Django中这样做很容易,但是有了Django CMS,我就无法控制呈现和模板选择。我可以用任何方式做这件事,或者我应该寻找不同的解决方案吗?
谢谢。
发布于 2014-07-22 08:17:02
Django将检查POST中是否有template变量或GET在请求中,如果它是一个有效的模板(它是在options.py中的CMS_TEMPLATES中设置的),它将用于显示页面。可以在middleware.py中使用以下代码片段来切换模板:
if request.COOKIES.get("mobi")=='y':
if request.current_page:
request.POST._mutable = True
request.POST['template'] = 'mobile/' + get_template_from_request(request)
request.POST._mutable = False您需要记住的一件事是,这只会切换page的模板,以更改插件模板,您需要修改插件的render方法中的instance.template变量。
https://stackoverflow.com/questions/24732705
复制相似问题