Django - Строка, настраивающая цвет для шаблона - PullRequest
0 голосов
/ 15 декабря 2018

Эй, можно ли настроить текст, который я вывожу на свой шаблон, с определенными словами другого цвета?Например, у меня есть слово, которое я вывожу в свой шаблон:

def test(request):
    text = 'test text but this section is red'
    return render(request, 'test.html', {'text':test}

Как я могу получить другой цвет для «этот раздел красный», но остальное нормально показывать в моем шаблоне?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Да, вы можете добиться этого различными способами.

У Django есть фильтр safe и тег autoescape в шаблоне.

def test(request):
    text = '<span style="color: red">test text but this section is red</span>'
    return render(request, 'test.html', {'text':test}

и в шаблоне просто используйте;

{{ text|safe }}

или

{% autoescape off %} {{ text }} {% endautoescape %}

или вы можете написать свой собственный фильтр с помощью mark_safe

from django import template
from django.utils.safestring import mark_safe

register = template.Library()

@register.filter
def custom_filter(text, color):
    safe_text = '<span style="color:{color}">{text}</span>'.format(color=color, text=text)
    return mark_safe(safe_text)

и в шаблоне;

{{ text|custom_filter:'red'}}
0 голосов
/ 15 декабря 2018

Разделите его на две части, чтобы вы могли различать их в своем шаблоне.

def test(request):
    text = 'test text but'
    red_text = 'this section is red'
    return render(
        request,
        'test.html',
        {'text': text, 'red_text': red_text}
    )

Затем в шаблоне;

<p>{{ text }} <span style="color: red">{{ red_text }}</span></p>
...