Я работаю над проектом Django, в котором один из фронтэндов попросил, чтобы для одного из наших запросов ajax он хотел, чтобы я возвратил JSON dict, причем одним из ключей был какой-то отрендеренный HTML из шаблон. Так, например:
d = {
"hits": 22,
"page": 3,
"somehhtml": """<div id='item1'>Something</div><div id='item2'>More Stuff</div>
<p>More after some linebreaks.</p>"""
}
Когда я использую simplejson.dumps, чтобы вернуть это, он экранирует HTML, предположительно, чтобы сделать его действительным JSON, с множеством символов \ n перевода строки и экранированных кавычек.
Как хак, у меня получилось, что я добавил строковый шаблон замены char в dict, прежде чем сериализовать его с помощью dumps (), а затем заменил его отображаемым шаблоном перед отправкой обратно в браузер. Это, очевидно, ужасно, и, конечно, не может быть правильным способом сделать это.
Итак, правильный ли способ справиться с этим, чтобы использовать какой-либо способ десериализации jQuery / JS на клиенте, или мне нужно написать собственный сериализатор на стороне Python, чтобы не избежать некоторых вещей? Я попытался передать его в eval () в JS, но это дает мне SyntaxError.
Существуют ли практические причины, по которым то, что я сейчас делаю (т.е. не избегаю символов), является плохой идеей? (Чтобы помочь мне объяснить, не потому, что я не думаю, что я должен это изменить).
Спасибо!
Людо.