[Django]DBからHTMLを実行した形で取得したい(エスケープさせたい)

未分類

えんちゃです。
いま、DjangoでWebサイトを作っているのですが、


DBにこんな形でデータを入れ、article_data変数に格納し、出力しようとしたとき、

<html>
<head>
    <title>脱サラ君</title>
</head>
<body>
    <h1>{{article_data.title}}</h1>
    {{article_data.content}}
</body>
</html>

このようにHTMLガン無視で表示されます。

解決法

変数表示の{{  }}には変数内容を加工するためのフィルタという仕組みがあります。
「 | 」で書きます。
今回は、エスケープの無効化なので | safe を追加するだけになります。

<html>
<head>
    <title>脱サラ君</title>
</head>
<body>
    <h1>{{article_data.title}}</h1>
    {{article_data.content|safe}}
</body>
</html>

べんりぃ
いやー真っ先に「エスケープ無効」で検索出来たら速攻だったのですが、はじめ調べ方がタイトルの通りだったのでなかなか出てこなかった。笑

コメント

タイトルとURLをコピーしました