Tomé texto de mis modelos y usé la extensión de python Markdown para convertirlo en html... pero se representa como html como una cadena en mi sitio de esta manera:
bot: <p><code>62%</code> Not quite. You got this! Appreciate your efforts</p> kaik: <p>ss</p>En lugar de mostrar el html como una cadena, me gustaría formatearlo como html.
Mi views.py actualmente:
from django.shortcuts import render from .models import ChatStream from django.http import HttpResponseRedirect import random import markdown from django.template import RequestContext def send(request): message = request.POST.get('userMessage', False) ip = visitor_ip_address(request) response = routes(message, 'website_' + str(ip)) chatItem = ChatStream(ss= markdown.markdown(response), user= markdown.markdown(message), name=ip) chatItem.save() return HttpResponseRedirect('/chattr/')Estoy usando Markdown para convertir el texto en mis modelos ChatStream en un buen texto con formato de sitio web, pero en lugar de formatear como html, simplemente imprime el html como una cadena en el sitio.
mi chattr.html:
{% for chat_stream in chat %} <p> {% if forloop.last %} {% else %} <b>bot:</b> <br> {{chat_stream.ss}} <br> <b>{{user}}:</b> <br> {{chat_stream.user}} <br> {% endif %} </p> {% endfor %}Debería verse así en el sitio web:
bot: 62% Not quite. You got this! Appreciate your efforts kaik: ssEl motor de plantillas de Django escapará del texto, de modo que si el texto contiene a < b , lo representará como a < b Puede deshabilitar este escape con el filtro de plantilla |safe [Django-doc] :
{% for chat_stream in chat %} <p> {% if forloop.last %} {% else %} <b>bot:</b> <br> {{ chat_stream.ss |safe }} <br> <b>{{ user }}:</b> <br> {{ chat_stream.user }} <br> {% endif %} </p> {% endfor %}