Как ограничить длину текста и добавить точки, чтобы показать продолжение python django - PullRequest
2 голосов
/ 03 мая 2020

Я работаю на сайте электронной коммерции, используя django. Моя проблема в том, что некоторые названия продуктов длиннее, чем другие, из-за чего внешний вид продукта выглядит странно.

Вопрос: Как ограничить длину названия продукта и добавить точки, чтобы показать, что это продолжается

Пример: product_name = "Men Suede Loafers Moccasins Shoes -Black"

будет выглядеть product_name = "Men Suede Loafers Mocca...."

Ответы [ 3 ]

4 голосов
/ 03 мая 2020

Вы можете использовать шаблонный шаблон |truncatechars [Django -doc] :

{{ product_name<b>|truncatechars:23</b> }}

Пока вы сохраняете product_name как полный текст, отображается для первых 23 символов, а затем следует многоточие (…).

Вы также можете добавить всплывающую подсказку, которая отображает текст полностью, для пример:

<p <b>title="{{ product_name }}"</b>>{{ product_name|truncatechars:23 }}</p>
3 голосов
/ 03 мая 2020

Вы можете переопределить метод save ()

def save(self, *args, **kwargs):
    if len(self.product_name) > 20:
        self.product_name = self.product_name[:20] + '...'
    super().save(*args, **kwargs)
1 голос
/ 03 мая 2020

Вы можете получить длину строки, используя len

Вы можете разрезать строку, используя ломтики [:]

Вы можете добавить многоточие к строке, если длина дольше определенного порога.

if len(product_name) > 15:
    product_name = product_name[:15] + "..."
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...