1

我正在尝试使用夹层的过度扩展标签来覆盖和扩展夹层附带的现有模板。

它的基本作用是通过在查找可用模板的同时从模板列表中删除自身来删除当前模板本身,这样人们就可以通过使用相同的名称来过度扩展模板而无需circular reference.

我知道还有其他方法可以解决该问题,但是当我只想更改模板中的新标签 时,我不想编写呈现不同模板(具有不同名称)的视图。block

在文档中它说我可以像使用extends标签一样使用它,但是当我这样做时,它只会返回一个空模板。

这是我的项目结构:

project_dir
-|blog
--|__init___.py
--|templates
---|blog_post_detail.html
---|blog_post_list.html
-|override
--|__init__.py
--|admin.py
--|templatetags
---|__init__.py
---|extensive_tags.py

这是不起作用的示例模板:

{% overextends "blog/blog_post_list.html" %}
{% load mezzanine_tags extensive_tags i18n %}
{% block right_panel %}
{% get_best_posts_for_category blog_post 3 as best_posts %}
{%if best_posts %}
<ul class="nav nav-list">
    <li class="nav-header">BU KATEGORİDEKİ EN İYİ POSTLAR</li>
    {% for best_post in best_posts %}
    <li>
        <a href="{{ best_post.get_absolute_url }}">{{ best_post.title }} ({{ best_post.rating_average }})</a>
    </li>
{% endfor %}
</ul>
{% endif %}
{% endblock %}

这是INSTALLED_APPSsettings.py

INSTALLED_APPS = (
    "blog",
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.redirects",
    "django.contrib.sessions",
    "django.contrib.sites",
    "django.contrib.sitemaps",
    "django.contrib.staticfiles",
    "mezzanine.boot",
    "mezzanine.conf",
    "mezzanine.core",
    "mezzanine.generic",
    "mezzanine.blog",
    "mezzanine.forms",
    "mezzanine.pages",
    "mezzanine.galleries",
    "mezzanine.accounts",
    "override",
)

TEMPLATE_DIRSsettings.py

TEMPLATE_DIRS = (os.path.join(PROJECT_ROOT, "templates"),)

你怎么看?

4

1 回答 1

1

这已在 dev 分支中修复,但尚未发布。我刚刚发布了包含修复的 1.1.3,所以如果你升级它应该可以工作。

于 2012-06-26T12:39:01.590 回答