我如何限制文本长度并添加点来显示延续python django



我正在使用django开发电子商务网站。我的问题是,有些产品的名字比另一个长,这使得产品的展示看起来很奇怪。

问题:如何限制产品名称的长度并添加点以显示其继续

示例:product_name = "Men Suede Loafers Moccasins Shoes -Black"

看起来像product_name = "Men Suede Loafers Mocca...."

您可以使用|truncatechars模板过滤器[Django doc]:

{{ product_name|truncatechars:23}}

因此,当您将product_name存储为全文时,前23个字符的呈现为,然后后跟省略号(…(。

您还可以添加一个完整显示文本的工具提示,例如:

<ptitle="{{ product_name }}">{{ product_name|truncatechars:23 }}</p>

您可以覆盖save((方法

def save(self, *args, **kwargs):
if len(self.product_name) > 20:
self.product_name = self.product_name[:20] + '...'
super().save(*args, **kwargs)

您可以使用len获取字符串的长度

您可以使用切片[:]切割字符串

如果长度大于某个阈值,则可以将省略号添加到字符串中。

if len(product_name) > 15:
product_name = product_name[:15] + "..."

最新更新