在Django的TextField中禁用HTML转义

evg*_*iuz 30 html django django-models textfield

当我写入模型的TextField时,如何关闭Django的自动HTML转义?

bju*_*nix 87

只需使用django的安全过滤器.在您的模板中,您可以执行以下操作:

{{ instance.my_text_field|safe }}
Run Code Online (Sandbox Code Playgroud)

  • 我非正式地称你接受了答案.谢谢! (7认同)
  • 作为警报,这允许XSS攻击.Javascript标签可用于输入恶意代码. (2认同)

Dan*_*llo 18

一种方法是在模型中放置一个函数,该函数返回标记为安全的数据:

from django.utils.safestring import mark_safe 

class MyModel(models.Model): 
    my_textfield = models.TextField()

    def display_my_safefield(self): 
        return mark_safe(self.my_textfield)
Run Code Online (Sandbox Code Playgroud)

然后在模板中你必须使用:

{{ instance.display_my_safefield }}
Run Code Online (Sandbox Code Playgroud)

  • 如果使用django的安全过滤器,则根本不需要修改模型. (6认同)