Django 特定のHTMLタグと属性を許可する方法
Djangoでテンプレート内で特定のHTMLタグを許可するには、django-bleachやdjango-html-sanitizerなどのサードパーティのHTMLサニタイザーライブラリを使用する方法がある。
これらのライブラリはHTMLを安全に扱うために役立ちます。
django-bleach
settings.py
# settings.py
INSTALLED_APPS = [
# ...
'bleach',
]
BLEACH_ALLOWED_TAGS = ['iframe']
BLEACH_ALLOWED_ATTRIBUTES = {'iframe': ['src', 'width', 'height', 'allowfullscreen']}
この場合、iframeタグが許可され、指定した属性も許可されるようになる。
複数タグの場合、
# settings.py
BLEACH_ALLOWED_TAGS = ['iframe', 'div']
BLEACH_ALLOWED_ATTRIBUTES = {
'iframe': ['src', 'width', 'height', 'allowfullscreen'],
'div': ['style'] # 例として style 属性を許可
}
のような感じにする。
テンプレート
{% load bleach_tags %}
{{ your_content|bleach }}