在没有reverse_id的app_hook模型上渲染show_placeholder

时间:2014-01-09 14:00:19

标签: django django-templates django-cms

我有一个通过apphook到django-cms的新闻应用程序。它有一个共同的占位符,需要通过其文章来呈现

我试过用

{% block left-slogan %}
{% show_placeholder "left-slogan" inherit %}
{% endblock %}

我还试图放置apphooked页面的reverse_id并将app_name添加到cms_app.py,两者都无济于事。

这是我的cms_app.py

class NewsApphook(CMSApp):
    name = _("News")
    urls = ["news.urls"]

apphook_pool.register(NewsApphook)

我的urls.py

from .views import NewsView, NewsDetailView

urlpatterns = patterns('',
    url(r'^$', NewsView.as_view(), name='news'),
    url(r'^(?P<slug>(.*))/$', NewsDetailView.as_view(), name='news_detail'),
)

编辑这是我的完整占位符树

base.html文件

{% load sekizai_tags cms_tags (...) %}
(...)
{% block left-slogan %}{% placeholder "left-slogan" %}{% endblock %}
(...)

default.html中

{% extends "base.html" %}
(...)
{% block left-slogan %}
{% placeholder "left-slogan" or %}
    {% show_placeholder "left-slogan" "index" %}
{% endplaceholder %}
{% endblock %}
(...)

news_detail.html

(...)
{% block left-slogan %}{% show_placeholder "left-slogan" inherit %}{% endblock %}
(...)

有没有人知道如何在其子项中执行apphooked视图的show_placeholder?

感谢。

1 个答案:

答案 0 :(得分:0)

您可能需要扩展left-slogan占位符所在的模板,或者您需要将“左占位符”的内容移动到您可以通过ID引用的共享模板中。