0

喜欢 django-tables ......但我确信解决起来很简单的事情让我很适应。当我为给定行/列传递的值类似于:

some<br/>random<br/>words<br/>returned

我希望浏览器解析和呈现该单元格中的内容......看起来像这样:

返回了一些
随机
单词

不要逃避我传递的内容并像这样显示它:

some<br/>random<br/>words<br/>returned

肯定有一些我错过的标志或选项吗?

4

3 回答 3

7

使用 mark_safe 如下:

import django_tables2 as tables
from django.utils.safestring import mark_safe

class testTable(tables.Tables):
    id = tables.Column()
    html = tables.Column()

    def render_html(self):
        return mark_safe('some<br/>random<br/>words<br/>returned')

在这个帖子中问了同样的问题

于 2012-10-09T17:38:34.917 回答
3

如果您的某些数据已经包含 HTML,最简单的解决方案是使用 aTemplateColumn而不是普通列并将值标记为安全:

class Table(tables.Table):
    html_data = tables.TemplateColumn("{{ value|safe }}")
    # ...
于 2012-09-13T23:32:22.820 回答
1

哈。找到了。自动转义我的内容的不是 django-tables2,而是 django 模板系统本身:https ://code.djangoproject.com/wiki/AutoEscaping 。

我不得不改变我的模板代码来呈现 django-table2 像这样:

{% autoescape off %}
    {% load render_table from django_tables2 %}
    {% render_table route_table %}
{% endautoescape %}
于 2012-09-11T22:21:59.363 回答