默認情況下,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