Django: HTML标签显示为文本

1 投票
1 回答
1401 浏览
提问于 2025-04-17 15:16

在我的Django应用中,<acronym>...</acronym>标签显示成了&lt;acronym title=&#39;Особо охраняемая прирродная территория&#39;&gt;ООПТ&lt;/acronym&gt;

这个模板看起来是这样的(acronym标签出现在cur_goal.description中)。

{% extends "base.tpl.html" %}

{% block title %}{{ genplan.name }}{% endblock %}

{% block content %}
    <h2>{{ category_name }}</h2>
    {% for cur_goal in goals %}
        <li>{{ cur_goal.description }}</li>
    {% endfor %}
{% endblock %}

{% block right_sidebar %}
{% endblock %}

我该怎么改代码,才能让acronym标签正确显示(也就是说,尖括号不要被替换成&lt;&gt;)呢?

1 个回答

2

正如DM所说,autoscape标签,或者说...安全过滤器

    <li>{{ cur_goal.description|safe }}</li>

或者可以从Python这边使用mark_safe

https://docs.djangoproject.com/en/dev/ref/utils/#django.utils.safestring.mark_safe

撰写回答