Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django CMS动态移动文件夹模板_Django_Django Cms - Fatal编程技术网

Django CMS动态移动文件夹模板

Django CMS动态移动文件夹模板,django,django-cms,Django,Django Cms,我有一个Django CMS 2.4网站,目前当检测到移动用户代理时,我会切换到不同的URL设置,为移动用户提供不同的页面。现在,我想对两者使用相同的内容,但对移动版和桌面版使用不同的模板,因此我不需要在两个位置进行编辑,因此URL将对两者保持不变。我知道这在Django中很容易做到,但有了Django CMS,我无法控制渲染和模板选择。我可以用任何方式来做吗,或者我应该寻找一个不同的解决方案吗 谢谢。Django CMS将检查POST或GET in请求中是否有模板变量,如果它是一个有效的模板,

我有一个Django CMS 2.4网站,目前当检测到移动用户代理时,我会切换到不同的URL设置,为移动用户提供不同的页面。现在,我想对两者使用相同的内容,但对移动版和桌面版使用不同的模板,因此我不需要在两个位置进行编辑,因此URL将对两者保持不变。我知道这在Django中很容易做到,但有了Django CMS,我无法控制渲染和模板选择。我可以用任何方式来做吗,或者我应该寻找一个不同的解决方案吗


谢谢。

Django CMS将检查POST或GET in请求中是否有模板变量,如果它是一个有效的模板,则会在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
需要记住的一点是,这只会切换页面的模板,要更改插件的模板,需要修改插件的render方法中的instance.template变量