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 中我有,例如,<h1>123</h1>在“文本”列中,它会在 html 文件中像字符串一样返回,而不是123 (h1)。所以,在管理界面中,我可以写一篇带有 html-tags 的文章。我可以看到我网站中的标签就像一个字符串。这是错的。

4

1 回答 1

2

您可以使用@karthikr 在他的评论中提出的内容:

{{data|safe}}

或者如果您需要针对模板块(不仅是上面的一个变量)使用它,请使用如下:

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

DJango 在字符串中显示 html 标签,因为它们是为了防止跨站脚本 (XSS) 攻击。您可以在 DJango 官方文档中找到完整的描述:

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

于 2013-01-29T20:08:12.990 回答