模板块内的 Django CMS 占位符不显示
Posted
技术标签:
【中文标题】模板块内的 Django CMS 占位符不显示【英文标题】:Django CMS Placeholder Within Template Block Not Displaying 【发布时间】:2017-09-19 21:49:15 【问题描述】:我正在关注this 使用 Django CMS 构建基本博客的教程,但遇到了一个奇怪的行为。当我发现没有在 CMS 的结构部分中创建内容区域时,这一切都开始了。在调查它时,我发现了奇怪的行为。
在这里。
base.html:
<!-- Main Content -->
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
% block content %% endblock %
</div>
</div>
</div>
<hr>
content.html:
% extends "base.html" %
% load cms_tags %
% block content %
% placeholder content or%
% endplaceholder %
% endblock content %
以上配置在 CMS 的结构页面上不显示任何内容块。但是,如果我将 base.html sn-p 更改为以下内容,它就可以工作。
base.html:
<!-- Main Content -->
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
% placeholder content or%
% endplaceholder %
</div>
</div>
</div>
<hr>
有人能告诉我为什么会这样吗?我在 Django 如何处理模板块中缺少什么?在我看来,这两种情况应该被同等对待。然而,结果显然不同。该教程声称我应该更改 content.html 方面。但是,如上图所示,这是行不通的。
感谢任何解释!
【问题讨论】:
两者确实看起来是相同的,并且应该按照我的方式工作。我能想到的唯一想法是您可能正在扩展不同的 base.html。您可以尝试在 content.html 中添加一些基本的 html 以查看它是否被渲染? 我尝试了你的建议,但没有任何效果。玩了一段时间后,我能够解决它。如果有兴趣,请参阅下面的答案。 【参考方案1】:我能够通过以下修改解决此问题。
base.html:
<!-- Main Content -->
% placeholder content or %
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
% block content %% endblock %
</div>
</div>
</div>
<hr>
% endplaceholder %
content.html:
% extends "base.html" %
% load cms_tags %
% block content %
% endblock content %
【讨论】:
以上是关于模板块内的 Django CMS 占位符不显示的主要内容,如果未能解决你的问题,请参考以下文章
显示相同占位符内容的 Django-CMS apphook 模板