默认情况下,Django管理员将用户输入中的所有HTML标签除去。我想允许一小部分标签,例如<a>
。最简单的方法是什么?我知道allow_tags
,但它已被弃用。我也想小心手动标记字符串是否安全。Django管理员:在用户输入中允许使用一些HTML
0
A
回答
0
如果外部库是不是对你的负担,那么你必须尝试django-bleach,就足够你的要求。它将返回仅包含您指定的允许标记的有效HTML。
配置: settings.py中
BLEACH_ALLOWED_TAGS = ['p', 'b', 'i', 'u', 'em', 'strong', 'a']
BLEACH_ALLOWED_ATTRIBUTES = ['href', 'title', 'style']
BLEACH_STRIP_TAGS = True
使用案例: 1.在你的模型:
from django import models
from django_bleach.models import BleachField
class Post(models.Model):
title = models.CharField()
content = BleachField()
2.在您的形式:
class PostForm(forms.ModelForm):
content = BleachField()
class Meta:
model = Post
fields = ['title', 'content']
在你的模板:
{%负载bleach_tags%}
{{unsafe_html |漂白}}
更多的用法,我建议你必须阅读的文档。它非常简单直接。
0
您可以使用format_html()
或mark_safe()
代替allow_tags
。虽然,就像你说的,mark_safe()
可能不是用户输入的好主意。
format_html()
:https://docs.djangoproject.com/en/1.9/ref/utils/#django.utils.html.format_html
mark_safe()
:https://docs.djangoproject.com/en/1.9/ref/utils/#django.utils.safestring.mark_safe
+0
如果HTML部分不是由用户输入的,据我可以告诉大家,才有效。 – Pieter
相关问题
- 1. 在Django中只允许管理员用户访问视图
- 2. 允许用户访问管理员?
- 3. 允许管理员制作其他管理员用户导轨
- 4. Django管理员:允许电子邮件作为用户名?
- 5. 限制Django管理员只允许超级用户
- 6. Django管理 - 当我使用Django管理员删除一些用户无法删除某些用户
- 7. ASP.NET允许管理员用户访问基本用户帐户
- 8. 不允许用户在输入中输入HTML标签
- 9. 允许用户/管理员自己更新内容管理
- 10. 配置Django允许使用Unix用户和组登录到管理员
- 11. 允许管理员使用iframe模拟用户
- 12. 允许管理员将用户分配给Ruby on Rails中的子管理员
- 13. 如何允许管理员用户在Django中编辑电子邮件模板?
- 14. 管理员用户允许删除和编辑其他用户
- 15. 只允许HTML格式的某些用户输入
- 16. 只允许某些HTML标签的用户输入
- 17. 只允许管理员用户访问一个resque web界面
- 18. Django管理员用户
- 19. 如何使用Firebase规则来允许用户和管理员写入权限?
- 20. Django,允许用户使用嵌入/对象html和XSS保护
- 21. 某些应用程序如何不允许管理员用户关闭它们?
- 22. Django:强制管理员用户在TabularInline中输入至少一个项目
- 23. 注册后禁用用户,并允许管理员确认
- 24. django - 允许用户在数据库中设置一些东西
- 25. 不允许用户输入管道字符'|'输入形式Angular
- 26. 当前用户在Django管理员
- 27. 如何处理html用户输入Django?
- 28. Angular 2 - 如何使用ReactiveFormGroup在HTML输入标记中管理用户输入
- 29. 允许非管理员用户上传照片Facebook页面
- 30. 允许管理员添加用户与设计
这对我有用,谢谢! – Pieter