如何在Django

时间:2019-03-04 10:46:22

标签: django django-templates django-views

首先编写了自定义模板上下文处理器方法

def show_pages_menu(context):


    pages_menu= suppliers.objects.filter(show_in_menu=True)

    return {'pages_menu': pages_menu}

将此方法添加到我的settings.py

之后
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'Accounts.pages_context.show_pages_menu'
            ],
        },
    },
]

最后,我创建了模板menu.html

{# First render the pages #}
{% for page in pages_menu %}

{# Then check if current page is 'published' #}
{% if page.status == 'published' %}

<li>
  <a href="{{ page.get_absolute_url }}">{{page.menu_title}}</a>
</li>

{% endif %}
{% endfor %}

并将此网址添加到我的urls.py

url(r'^suppliers/', CreateView.as_view(), name="suppliers")

我遵循了this教程。但是我遇到了错误

  

无法将关键字“ show_in_menu”解析为字段。

0 个答案:

没有答案