2010-08-04 56 views
6

我目前面臨嚴重的問題。 我使用標準的django管理界面,更改列表以顯示我的一個模型。 該模型有一個字段,其中包含一個鏈接(例如,在數據庫中:http:// localhost:8000/data/somefile.pdf'>鏈接)。在Django管理更改列表中顯示未轉義的HTML字符串

我現在想要的是該字符串呈現爲未轉義並顯示爲鏈接。我已經在「change_list_results.html」中嘗試了以下內容:

{% for result in results %} 
<tr id="{{ result.1|adminfilter }}" class="{% cycle 'row1' 'row2' %}"> 
    {% for item in result %} 
     {{ item|safe }} 
    {% endfor %}</tr> 
{% endfor %} 

我對輸出的實際項目使用了「| safe」。此外,我嘗試了「{%autoescape off%}」。同樣的結果,字符串得到了逃脫。

你是否看到任何其他方式讓字符串顯示未轉義?

回答

15

你想在你的方法上設置allow_tags=True。這有點隱藏,但在文檔中有描述 - 關於屏幕或從this link帶你到哪裏。

+0

丹尼爾,謝謝你的提示。我必須在模型中定義一個返回鏈接的方法,並標記此方法.allow_tags = True。 – 2010-08-04 11:28:31

+0

因爲鏈接,答案仍然正確。但'allow_tags'在Django 1.9中已被棄用。使用'format_html()'代替:'從版本1.9開始棄用: 在舊版本中,您可以向該方法添加allow_tags屬性以防止自動轉義。此屬性已棄用,因爲使用format_html(),format_html_join()或mark_safe()代替它更安全。 https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display – gabrieloliveira 2016-02-24 20:03:18

相關問題