1

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_DIRSsettings.py

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

どう思いますか?

4

1 に答える 1

1

これは開発ブランチで修正されましたが、まだリリースされていません。修正を含む 1.1.3 をリリースしたばかりなので、アップグレードすれば動作するはずです。

于 2012-06-26T12:39:01.590 に答える