2014-02-02 2 views
0

Я читаю набор строк из базы данных (через представление Django), и я отправляю их в шаблон Django. На мой взгляд:Символы (из вида Django) заменены объектами HTML

def get_rows(request, epNum): 

    # Getting rows from the database, 
    # 
    allStatements = all_statements.objects.all()    

    template = loader.get_template('main/show_db_content.html') 

    context = RequestContext(request, { 
     'allStatements': allStatements, 
    }) 
    return HttpResponse(template.render(context)) 

Однако, когда я печатаю содержание строк (поле CharField), символы (такие как <) конвертируется в их HTML-сущностей эквивалентных! В моем шаблоне:

<script> 
    var all_rows = []; 

    {% for el in allStatements %} 
     all_rows.push('{{ el.text_content }}'); // text_content is type CharField 
    {% endfor %} 

    console.log(all_rows[0]) 
</script> 

Например, если есть в моей базе данных <<, результат будет &lt;&lt;

Видимо, я сделал некоторые люди (комментарии ниже) на самом деле с ума, что не ясно о том, на мой вопрос , что я должен признать, в какой-то мере, моя ошибка ...

Мой вопрос: как я могу избежать этого преобразования из символов в объекты HTML, я бы хотел напечатать символ, поскольку он вместо этого его эквивалента сущности HTML!

ответ

1

Попробуйте использовать safe фильтр

BTW. Вы можете сократить свой код, используя render ярлык

+0

Отлично! Так оно и было; Я проверю ярлык «render». Благодаря :) –

Смежные вопросы