Django 特定のHTMLタグと属性を許可する方法

 django 

Djangoでテンプレート内で特定のHTMLタグを許可するには、django-bleachやdjango-html-sanitizerなどのサードパーティのHTMLサニタイザーライブラリを使用する方法がある。

これらのライブラリはHTMLを安全に扱うために役立ちます。

 

django-bleach

 

pip install 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 }}