1

我正在开发一个客户的 Django/Mezzanine 网站,该网站遇到了一些我似乎无法弄清楚的奇怪问题。在博客页面(blog_post_list.html 的模板)上,我无法获取要显示的页面的元标题,这意味着

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

在生成的 html 中不产生任何输出。元描述也是如此,但我并不担心。奇怪的是,它似乎适用于单个博客条目,以及网站上的所有其他页面,除了博客列表。

有任何想法吗?

4

2 回答 2

1

如果渲染不存在的变量或变量值为无,则 Django 模板中不会显示任何内容。

首先测试是否{{ blog_page }}呈现任何内容。如果它不检查是否blog_page在您的模板上下文中。

您可以通过编写简单的自定义模板标签来调试模板的上下文,例如:

模板/your_template.html:

{% load pdb from debug %}

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

模板标签/调试.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()
于 2013-12-21T14:31:44.003 回答
0

显然,其中涉及到一些混乱:我认为 blog_page.title 是夹层中的标准变量,显然不是,它是由以前的开发人员创建的自定义模型。由于我基本上只有模板和数据库的转储,似乎无法恢复 blog_page 类的原始模型,所以我只是通过在 blog_post_list 模板中手动提供元标题来解决它。

于 2013-12-22T01:06:39.630 回答