Django Compat

raw JSON →
1.0.15 verified Fri May 01 auth: no python maintenance

A compatibility layer for Django versions 1.4 through 1.11, providing backports and forwards-compatibility for features across major Django releases. Version 1.0.15 is the latest, likely in maintenance mode as Django 2.0+ is supported natively. Release cadence is low, with occasional updates for new Django versions.

pip install django-compat==1.0.15
error ModuleNotFoundError: No module named 'compat'
cause Trying to import `compat` (the old import path) instead of `django_compat`.
fix
Use from django_compat import ... or import django_compat.
error ImportError: cannot import name 'patterns' from 'django_compat'
cause The `patterns` function is deprecated/removed in newer Django and may not be available in all versions of django-compat.
fix
Use django.urls.re_path and django.urls.path instead, or verify your django-compat version supports patterns.
breaking The package is named `django-compat` on PyPI but the import module is `django_compat`. Using `import compat` will raise ModuleNotFoundError.
fix Use `from django_compat import ...` or `import django_compat` instead of `compat`.
deprecated Django 1.11 and earlier are end-of-life. django-compat is only useful for projects stuck on old Django versions. For Django 2.0+, use native Django APIs.
fix Upgrade Django and remove django-compat dependency.
gotcha Some backported functions (like `render_to_string` with new signature) only work on specific Django versions. Check the compatibility docs before relying on a feature.
fix Consult docs/compatibility.py in the repo to verify feature support for your Django version.

Import from django_compat instead of compat to avoid import errors.

from django_compat.urls import include, patterns
from django_compat import compat

# Example: use compat.atomic to get atomic context manager on older Django
from django_compat import compat

with compat.atomic():
    # Your transaction code
    pass