mezzanine の overextends タグを使用して、mezzanine に付属する既存のテンプレートをオーバーライドおよび拡張しようとしています。
それが基本的に行うことは、使用可能なテンプレートを探しながらテンプレートのリストから自分自身を削除することによって現在のテンプレート自体を削除すること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"),)
どう思いますか?