Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/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 WagtailCMS站点ID的显示_Django_Django Templates_Django Views_Wagtail_Wagtail Snippet - Fatal编程技术网

基于Django WagtailCMS站点ID的显示

基于Django WagtailCMS站点ID的显示,django,django-templates,django-views,wagtail,wagtail-snippet,Django,Django Templates,Django Views,Wagtail,Wagtail Snippet,我如何创建一个if块来根据WagtailCMS站点ID显示我的一个侧菜单 尝试过这个,但不起作用 {% if settings.SITE_ID == 1 %} {% include 'includes/_home-sidebar-left.html' %} {% else %} {% include 'includes/_home-sidebar.html' %} {% endif } 假设这是一个页面模板,您可以通过使用的页面对象访问当前站点 这就是说,您将在模板中使用神奇的字符

我如何创建一个
if
块来根据WagtailCMS站点ID显示我的一个侧菜单

尝试过这个,但不起作用

{% if settings.SITE_ID == 1 %}
   {% include 'includes/_home-sidebar-left.html' %}
{% else %}
   {% include 'includes/_home-sidebar.html' %}
{% endif }

假设这是一个页面模板,您可以通过使用的页面对象访问当前站点

这就是说,您将在模板中使用神奇的字符串/数字(用于检查站点ID或名称)。解决这个问题的一种方法是使用模块

正确设置模块后,在
myapp/wagtail\u hooks.py
中创建一个设置对象(将显示在管理中):

from wagtail.contrib.settings.models import BaseSetting, register_setting


@register_setting
class LayoutSettings(BaseSetting):
    POSITION_LEFT = 'left'
    POSITION_RIGHT = 'right'
    POSITIONS = (
        (POSITION_LEFT, 'Left'),
        (POSITION_RIGHT, 'Right'),
    )
    sidebar_position = models.CharField(
        max_length=10,
        choices=POSITIONS,
        default=POSITION_LEFT,
    )
并使用templates
myapp/templates/myapp/mytemplate.html

{% if settings.myapp.LayoutSettings.sidebar_position == 'left' %}
   {% include 'includes/_home-sidebar-left.html' %}
{% else %}
   {% include 'includes/_home-sidebar.html' %}
{% endif }