截断 Django CMS 占位符

Posted

技术标签:

【中文标题】截断 Django CMS 占位符【英文标题】:Truncate Django CMS Placeholder 【发布时间】:2013-10-08 11:10:21 【问题描述】:

我正在创建自己的 Django CMS 博客插件。我正在使用占位符来保存博客条目的全部内容,并且我正在尝试弄清楚如何从该占位符中自动创建摘录。

如果它只是一个文本字段,我知道我可以在模板中使用“|truncatechars:15”,但我不知道如何为占位符执行此操作。

我可以在模板或“views.py”中使用什么来截断占位符吗?

提前致谢。

【问题讨论】:

【参考方案1】:

如您所见,您不能截断占位符,因为占位符的工作只是呈现添加到其中的内容插件。

您唯一可行的选择是截断插件渲染模板中的字段,或者在模型上添加一个单独的字段来存储截断的文本。可以使用post_save 信号处理程序自动填充此类字段。

【讨论】:

【参考方案2】:

当我不能使用 django truncatechars 时,我更喜欢的方式是使用 CSS 来解决这个问题。

假设在渲染占位符后,您将拥有如下内容:

<html>
    <body>
        <div class="text">Your content from placeholder</div>
    </body>
</html>

在您的 CSS 中添加:

div.text 
    width: 120px;
    text-overflow: ellipsis;
    white-space:nowrap;
    overflow:hidden;

最终结果将如下所示:

您的内容来自...

【讨论】:

以上是关于截断 Django CMS 占位符的主要内容,如果未能解决你的问题,请参考以下文章

Django-CMS - 全球占位符?

cms 之外的 Django CMS 简单占位符

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

For循环占位符内容Django CMS

Django CMS Group/Nest 占位符

Django CMS 自动显示正确的占位符插件