【问题标题】:How to set "see more" option on large descriptions in Django?如何在 Django 中的大型描述上设置“查看更多”选项?
【发布时间】:2013-09-09 15:36:50
【问题描述】:

我正在使用 python 语言在 django 平台上工作。我在我的模板文件中显示结果,其中我有很大的描述要显示。我只想知道如果文本超过 4 行,我们如何在大描述上设置“查看更多”选项。在 4 行之后将出现“查看更多”选项。就像 Facebook 的长状态一样。并单击“查看更多”选项,我想显示我的整个描述。我是 django 的新手,将不胜感激。

这是我的代码

<span class="results-cell-heading">{% trans "Description:" %}</span> 
<span class="results-cell">{% autoescape off %}{{ obj.description }}
{% endautoescape %}</span>

这里的{{obj.description}} 是描述文本。

【问题讨论】:

标签: python html django django-templates word-wrap


【解决方案1】:

您可以调整现有的模板标签 truncatewords 以制作您自己的模板标签:

def truncatereadmore(value, arg):
    """
    Truncates a string after a certain number of words.

    Argument: Number of words to truncate after.

    Newlines within the string are removed.
    """
    try:
        length = int(arg[0])
    except ValueError: # Invalid literal for int().
        return value # Fail silently.
    return Truncator(value).words(length, truncate=arg[1])

在模板中:

{{ value|truncatereadmore:80:"read more" }}

我确实测试过,但这是一般的想法;)

完成此操作后,您将需要使用 JavaScript 来处理您希望看到的“facebook 行为”

【讨论】:

  • 不能使用这个答案的解决方案。因为我已经在调用一些函数
  • 如果我没记错的话,你可以使用几个模板标签 {{ value|tag1:parm1:parm2|tag2:parm1:parm2|tag3:parm1:parm2 }}
猜你喜欢
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多