2017-08-01 57 views
0

我有一個動態formset(使用脆皮形式)來設置對象的價格。我需要向用戶顯示這些對象的名稱,以便他們知道他們爲其設置價格的對象。但是,這些名稱是由用戶自己以不同的形式選擇的。對於這個(在Layout中)使用HTML類似乎最明顯,但是這是爲了呈現Django模板。讓用戶添加模板代碼會導致安全問題。添加非模板HTML到脆皮表單佈局

我想到的一個解決方案是首先手動「逃避」它,通過將它包裝在{% verbatim XXXXXX %}標記中,用XXXXXX一些安全隨機的字符串,或者用HTML字符代碼替換任何大括號。但是,這兩種解決方案看起來都很不方便,容易出錯,從而導致安全問題。

是否有一種更簡潔的方式將純HTML插入到脆皮佈局中?

回答

1

構建自己的佈局對象非常簡單,它們只需要一個渲染函數,該函數返回要插入到表單中的字符串。你可以這樣編寫你自己的HTML類版本:

class SafeHTML: 
    def __init__(self, html): 
     self.html = html 

    def render(self, *args, **kwargs): 
     return str(self.html)