Заголовок блога мезонина не отображается
Я работаю над клиентским сайтом 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()