Django:允许用户在表单字段中提交有效的HTML

标签 django django-forms

使用Django,用户是否可以在表单字段中提交HTML,将其保存,然后在模板中呈现HTML?

一个示例是用户在文本字段内添加链接,然后该链接应呈现为文本其余部分内的标签。

用户将输入类似:

this is a site called <a href="http://stackoverflow.com">SO</a>.

SO链接将是一个链接,而不是将其呈现为文本。

最佳答案

Django默认情况下转义。您可以通过filter or tag将字符串标记为safe,以防止自动转义行为。

{{ my_text_with_html|safe }}

{% autoescape off %}
    {{ my_test_with_html }}
{% endautoescape %}

如果您接受用户输入的html,则需要对其进行清理,以使他们无法编写脚本等。为此,只需将python html进行清理并在将数据发送到模板之前应用它即可。

Python HTML sanitizer / scrubber / filter

关于Django:允许用户在表单字段中提交有效的HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872405/

相关文章:

django - 如何在 django 中创建这样一个带有复选框的表?

python - Django:如何在管理面板中检测对象请求?

django - 如何在不覆盖 ModelForm 中的字段定义的情况下将 ManyToManyField 小部件更改为 CheckboxSelectMultiple

python - Django - 从其他 URL 获取 POST 数据

python - 顶级变量赋值或方法调用之间有多少空行?

python - 如何使用 CreateView 在 Django 表单上设置初始值

django - 'RelatedManager' 对象没有属性 'save'

django - GeoDjango 从 json 或点保存数据

python - 动态更新 ModelForm 的 Meta 类

django - 如何测试我的 redis 缓存是否正常工作?