将 if 语句添加到 django-cms 模板标签

Posted

技术标签:

【中文标题】将 if 语句添加到 django-cms 模板标签【英文标题】:Adding an if statement to django-cms template tag 【发布时间】:2013-08-02 16:02:59 【问题描述】:

我可能遗漏了一些非常明显的内容,但在文档中看不到任何内容。我有一个带有 a 的旋转木马,每个都会保存一个图像。但是我添加了 6,但我想添加一个 if 语句,因此如果尚未添加图像,您将看不到一个空白区域,其中没有内容。

这是我迄今为止尝试过的:

% if "Carousel 1" %
<li>
% placeholder "Carousel 1" %
</li>
% endif %

尝试 2:

% placeholder "Carousel 1" as cara1 %

% if cara1 %
  <li>

 cara1  

   </li>
 % endif %

不确定我是否需要为 django-cms 模板标签做一些不同的事情?

任何帮助将不胜感激。文档在这里 - http://docs.django-cms.org/en/latest/advanced/templatetags.html#placeholder

【问题讨论】:

【参考方案1】:

不要粗鲁,但你的方法是方式,方式:)

占位符包含内容插件。内容插件负责它们如何呈现其内容。

我的建议是创建或查找轮播内容类型插件。该插件将包含多个图像或“CarouselImage”模型实例,您可以对其进行迭代,并指定一个用于呈现自身的模板。

此模板中包含您要检查的条件语句。占位符就是这样 - 为内容插件保留的位置。

【讨论】:

感谢您的回复,您并没有无礼。我从来没有那样看它。 django-cms 对我来说是新的,所以仍在尝试找出最好的方法来做这样的事情。我将为图片库创建一个模型,然后创建一个插件来引用该模型。我唯一的问题是,上次我创建插件时,我只能从该模型中选择一个帖子。那是因为我构建插件的方式吗?还是每个插件只能选择一个模型实例?希望最后一点是有道理的。再次感谢。 是的。在这种情况下,您想要做的是构建您的插件的两种方式之一。要么你需要一个 ManyToMany 字段来保存你的图片,要么你需要在“Gallery”模型中将它们作为内联引用。我会推荐后者,因为您可能希望提供 Alt 文本,或从这些实例中指向其他页面的链接,而使用 M2M 则无法做到这一点。 非常感谢真的很有帮助。找到最佳解决方案后,将立即更新问题。再次感谢布兰登。

以上是关于将 if 语句添加到 django-cms 模板标签的主要内容,如果未能解决你的问题,请参考以下文章

将自定义占位符添加到 django-cms

Django-cms 菜单模板标签问题

如果评估的变量为 False,为啥我的 django 模板中的这个 IF 语句会执行?

显示相同占位符内容的 Django-CMS apphook 模板

在不同的占位符/模板上以不同的方式呈现 Django-CMS 插件

如何将 nginx 位置添加回 302 重定向响应位置