我正在尝试使用夹层的过度扩展标签来覆盖和扩展夹层附带的现有模板。
它的基本作用是通过在查找可用模板的同时从模板列表中删除自身来删除当前模板本身,这样人们就可以通过使用相同的名称来过度扩展模板而无需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_APPS
在settings.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_DIRS
在settings.py
:
TEMPLATE_DIRS = (os.path.join(PROJECT_ROOT, "templates"),)
你怎么看?