0

私はモデルを持っています:

class Pages(models.Model):
    meta_d = models.CharField(max_length=255, unique=True)
    meta_k = models.CharField(max_length=255, unique=True)
    title = models.CharField(max_length=255, unique=True)
    text = models.TextField()

しかし、dbに、たとえば「text」列がある場合、 123(h1)<h1>123</h1>ではなく文字列のようにhtmlファイルに返されます。したがって、管理インターフェースでは、htmlタグを使用して記事を書くことができます。そして、私は私のサイトでそのタグを文字列のように見ることができます。それは間違っています。

4

1 に答える 1

2

@karthikrが彼のコメントに書いたものを使用できます:

{{data|safe}}

または、テンプレートのブロック(上記の1つの変数だけでなく)に対して作業する必要がある場合は、次のように使用します。

{% autoescape off %}
{{ data }}
{{ data2 }}
{% endautoescape %}

DJangoは、クロスサイトスクリプティング(XSS)攻撃から保護するために、HTMLタグを文字列で表示します。完全な説明は、DJangoの公式ドキュメントにあります。

https://docs.djangoproject.com/en/dev/topics/templates/#automatic-html-escaping

于 2013-01-29T20:08:12.990 に答える