Django как превратить строку python в строку javascript и вывести ее на сайт

Я работаю с Django и в моих представлениях я посылаю моей странице строку HTML:

 <p><code>202</code> </p><p>hello world/p>
<ul>
<li>Goodbye<strong><em>next</em></strong> or <strong><em>happy</em></strong> to go on.</li>
</ul> byebye <p>&lt;3</p>

Однако, он отправляется на страницу в виде:

    var html_smallest_steps =     
     &lt;p&gt;&lt;code&gt;202&lt;/code&gt; &lt;/p&gt;&lt;p&gt;hello world/p&gt;
&lt;ul&gt;
&lt;li&gt;Goodbye&lt;strong&gt;&lt;em&gt;next&lt;/em&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;em&gt;happy&lt;/em&gt;&lt;/strong&gt; to go on.&lt;/li&gt;
&lt;

и я получаю консольную ошибку на моей странице: Uncaught SyntaxError: Unexpected token '&'

Мой views.py имеет следующий вид:

def displayDict(request):
    html_ss = 
""" 
    <p><code>202</code> </p><p>hello world/p>
    <ul> <li>Goodbye<strong><em>next</em></strong> or <strong><em>happy</em></strong> to go on. 
    </li> </ul> byebye <p>&lt;3</p>
    """
    return render(request, 'chatStream.html',
    {"html_sss": html_ss})

А chatStream.html это:

<p id="chatLine">get this working!!</p>

    <script>
    var html_smallest_steps = {{html_smallest_steps}}
    } 

setTimeout(myTimeout2, 2000) 

function myTimeout2() {
  document.getElementById("chatLine").innerHTML = "html_ss  " + html_ss;
}
</script>
from django.utils.safestring import marksafe

def displayDict(request):
    ...
    return render(request, 'chatStream.html',
    {"html_sss": mark_safe(html_ss)})

Или вы можете использовать тег safe в вашем шаблоне. https://docs.djangoproject.com/en/3.2/ref/templates/builtins/#std:templatefilter-safe

Вернуться на верх