How marksweb/django-nh3 works
django-nh3 integrates the nh3 HTML sanitizer into Django model fields, form fields, and a template filter. Each entry point obtains sanitizer options, cleans HTML, and returns or stores safe output. Model fields sanitize before database writes and mark database values safe when read; the README documents settings-based defaults and per-field overrides. The graph reflects the sampled implementation; integration details beyond the supplied source are omitted.
Main entry points: models.py Sanitizing fields · forms.py Sanitizing form field · nh3_tags.py nh3 template filter · utils.py Option resolution
Components 12
Configuration and checks
- App registration
src/django_nh3/apps.py - Security check
src/django_nh3/checks.py - Option resolution
src/django_nh3/utils.py
Model fields
- Sanitizing fields
src/django_nh3/models.py
Form sanitization
- Sanitizing form field
src/django_nh3/forms.py
Template sanitization
- nh3 template filter
src/django_nh3/templatetags/nh3_tags.py
Other components
- Application developer
- HTML content
- Django settings
- nh3 sanitizer
- Django database
- Safe HTML output
Connections 18
- Application developer → Django settings: configures
- Django settings → Option resolution: provides defaults
- Django settings → Security check: supplies settings
- App registration → Security check: registers
- Sanitizing fields → Option resolution: resolves options
- Sanitizing form field → Option resolution: resolves options
- nh3 template filter → Option resolution: resolves defaults
- HTML content → Sanitizing fields: sets field value
- Sanitizing fields → nh3 sanitizer: sanitizes before save
- Sanitizing fields → Django database: writes cleaned value
- Django database → Sanitizing fields: returns stored value
- Sanitizing fields → Safe HTML output: marks safe
- HTML content → Sanitizing form field: supplies form value
- Sanitizing form field → nh3 sanitizer: cleans value
- Sanitizing form field → Safe HTML output: returns safe value
- HTML content → nh3 template filter: supplies template value
- nh3 template filter → nh3 sanitizer: cleans value
- nh3 template filter → Safe HTML output: marks safe