Джанго и проблема обтекания линий - PullRequest
4 голосов
/ 17 июля 2011

У меня проблема много лет назад.

Проблема в том, что длинный текст не разделен пробелами в div. Обтекание не применяется, и оно нарушает весь макет.

Как я могу исправить в Django хорошим способом?

Вот что я вижу:

enter image description here

Ответы [ 3 ]

7 голосов
/ 17 июля 2011

Насколько я понимаю, это проблема на стороне HTML, а не на стороне django. Для решения HTML смотрите Как переносить текст в HTML? . Если вы все еще хотите обернуть текст в код Python, вам поможет textwrap.wrap .

Также для этого есть удобный шаблонный тег: wordwrap . Он использует функцию django.utils.text.wrap , которая кажется более подходящей для использования в проектах Django.

1 голос
/ 02 мая 2017

Это меня беспокоило, так как встроенный тег шаблона переноса слов должен был просто сработать.Вместо этого используйте это ...

{{ value|wordwrap:50|linebreaksbr }}

или

{{ value|wordwrap:50|linebreaks }}

в зависимости от того, хотите ли вы теги <br> или <br> and <p>

1 голос
/ 17 июля 2011

Я не знаю, поможет ли это, но подход может заключаться в создании нового фильтра на основе фильтра truncatewords.https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#truncatewords

Код выглядит очень просто:

def truncate_filter(value, maxlen):
    if len(value) <= maxlen:
        return value
    return value[:maxlen-2] + '..'

Другая идея использует: {{ username|stringformat:".10s" }} для усечения до 10 символов.https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#stringformat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...