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 が含まれている場合、最も簡単な解決策はTemplateColumn、通常の列ではなく a を使用し、値を安全とマークすることです。

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

HA。それを見つけた。私のコンテンツを自動エスケープしたのは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 に答える