#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 будет правильно отображаться на вашей странице