Шаблон html отображается некорректно

#django #django-templates

#django #django-шаблоны

Вопрос:

Когда я пытаюсь просмотреть созданный мной шаблон, сервер разработки показывает html-файл шаблона, как если бы это был обычный текст. В основном веб-страница показывает, что находится в моем файле template .html. Я знаю, что что-то работает, потому что, когда я передаю функции render_to_response словарь аргументов и пытаюсь отобразить переменную, которую я передал I, она правильно отображает эту часть. Вот пример проблемы.

Это файл шаблона:

<b>Hello</b>

Тогда исходный код вывода выглядит следующим образом:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
<meta name="CocoaVersion" content="1038.35">
<style type="text/css"> p.p1 {поле: 0.0px 0.0px 0.0px 0.0px; шрифт: 12.0px Courier} </style>

</head>
<body>
<p class="p1">amp;<bamp;>Helloamp;</bamp;></p>
</body>
</html>

И на экране просто отображается: <b>Hello</b>

Буду признателен за любые идеи о том, как заставить мой шаблон отображаться так, как если бы это был HTML-файл.

Комментарии:

1. amp;<bamp;>Helloamp;</bamp;> является <b>Hello</b> . Это то, что ваш шаблон говорит для отображения. Это отлично работает.

2. Вы неправильно это объясняете. Если ваш файл шаблона просто <b>Hello</b> , то откуда берется весь этот материал doctype? Вам нужно точно показать, что это за шаблон и как вы его отображаете в представлении.

3. @daniel. Возможно, я просто запутался в том, что делает шаблон. Это моя функция просмотра: запуск def(запрос, foo): возвращает render_to_response(‘code_user.html ‘, {«foo»:foo}). И если файл шаблона: <b>{{foo}}</b> вывод на экран при загрузке веб-страницы будет <b>foo</b> где foo — значение переменной. В чем я не уверен, так это в том, откуда берется материал doctype. Я думаю, это мой настоящий вопрос.

Ответ №1:

Я не знаю, как вы выводите html-файл в свой шаблон, но, если вы делаете что-то подобное в своем шаблоне

 {{ my_template }}
  

для отображения строковой переменной my_template, которую вы передаете в render_to_response

вам просто нужно использовать безопасный фильтр

 {{ my_template|safe }}
  

это не будет html-кодировать вашу строку, и html будет правильно отображаться на вашей странице