Заголовок блога мезонина не отображается

Я работаю над клиентским сайтом Django/Mezzanine, у которого есть странная проблема, которую я просто не могу понять. На странице блога (шаблон blog_post_list.html) я не могу получить мета-заголовок страницы для отображения, то есть

{% block meta_title %}
{{ blog_page.title }}  
{% endblock %}

не производит вывод в результирующем html. То же самое относится и к мета-описанию, но меня это не очень беспокоит. Странно то, что, кажется, он отлично работает для отдельных записей в блоге, а также для всех других страниц сайта, кроме списка блогов.

Есть идеи?

2 ответа

Решение

По-видимому, возникла некоторая путаница: я думал, что blog_page.title - это стандартная переменная в мезонине, очевидно, это не так, это была пользовательская модель, созданная предыдущим разработчиком. Поскольку у меня в основном только шаблоны и дамп БД, представляется невозможным восстановить исходную модель для класса blog_page, поэтому я просто решил эту проблему, указав мета-заголовок вручную в шаблоне blog_post_list.

Ничего не отображается в шаблоне Django, если вы отображаете несуществующую переменную или значение переменной None.

Первый тест, если {{ blog_page }} оказывает все что угодно. Если это не проверить, если blog_page в контексте вашего шаблона.

Вы можете отладить контекст шаблона, написав простой пользовательский тег шаблона, например:

шаблоны / your_template.html:

{% load pdb from debug %}

{% block meta_title %}
    {% pdb %}
    {{ blog_page.title }}  
{% endblock %}

templatetags / debug.py:

from django import template
register = template.Library()

@register.simple_tag(name='pdb', takes_context=True)
def pdb(context, *args, **kwargs):
    import ipdb;
    ipdb.set_trace()
Другие вопросы по тегам