Следующий код в одном из моих представлений возвращает незавершенную строку HTML, которая не может быть проанализирована в frontend, так как это - запрос Ajax.
return render_to_response(template_name, {
'form': form,
redirect_field_name: redirect_to,
'site': current_site,
'site_name': current_site.name,
}, context_instance=RequestContext(request))
Что самый простой путь состоит в том, чтобы исправить это? Заранее спасибо..
Он должен экранировать по умолчанию.
Но, если вы хотите, вы можете явно принудительно экранировать.
from django.utils.safestring import mark_for_escaping
return HttpResponse(mark_for_escaping(loader.render_to_string(""""Render Response Syntax"""))
Чтобы вернуть клиенту простой HTML из вашего вида, используйте django.http.HttpResponse
from django.http import HttpResponse
def view(request)
# Do stuff here
output = '''
<html>
<head>
<title>Hey mum!</title>
</head>
</html>'''
return HttpResponse(output)
Чтобы система шаблонов Django не могла экранировать HTML в шаблоне, просто воспользуйтесь фильтром |safe
:
response = "<img src='cats.png'/>"
# Meanwhile, in the template...
<div id="response">
{{response|safe}}
</div>