我正在开发一个客户端的Django / Mezzanine网站,它有一些我似乎无法弄清楚的奇怪问题。在博客页面(blog_post_list.html的模板)我无法获得要显示的页面的元标题,这意味着
{% block meta_title %}
{{ blog_page.title }}
{% endblock %}
在生成的html中不生成输出。元描述也是如此,但我并不担心它。奇怪的是,它似乎适用于个人博客条目,以及网站上除博客列表之外的所有其他页面。
有什么想法吗?
答案 0 :(得分:1)
如果渲染不存在的变量或变量值为None,则Django模板中不显示任何内容。
首先测试{{ 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()
答案 1 :(得分:0)
显然,涉及到一些混乱:我认为blog_page.title是夹层中的标准变量,显然它不是,它是由前一个开发人员创建的自定义模型。由于我基本上只有模板和DB的转储,因此似乎无法恢复blog_page类的原始模型,所以我只是通过在blog_post_list模板中手动提供元标题来解决它。