High-level Python web framework. Two active release lines: 6.0.3 (latest, Dec 2025, requires Python >=3.12) and 5.2.x LTS (Apr 2025, Python >=3.10, EOL Apr 2028). Feature releases roughly every 8 months. Deprecations follow a two-release cycle before removal.
pip install DjangoVerified import paths — ran on the pinned version, not inferred.
Minimal Django settings and model. Always set DEFAULT_AUTO_FIELD.
Use Django 5.2 LTS for Python 3.10/3.11 projects. Upgrade Python to 3.12+ to use Django 6.0.
pip install oracledb and update DATABASE ENGINE to django.db.backends.oracle. The oracledb driver uses the same connection parameters.
Replace return_insert_columns= with returning_columns= in bulk_create() calls.
Audit any custom EmailMessage subclasses. Replace SafeMIMEText/SafeMIMEMultipart references. BadHeaderError replaced by ValueError.
Upgrade MariaDB to 10.6+ before upgrading Django to 6.0.
Add DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' to settings.py.
Pin Django version explicitly: Django>=5.2,<6 for Python 3.10/3.11. Django>=6.0 for Python 3.12+.
ADMINS = ['admin@example.com'] or ADMINS = ['"Admin Name" <admin@example.com>']
Ensure BASE_DIR is defined in settings.py, e.g., `from pathlib import Path; BASE_DIR = Path(__file__).resolve().parent.parent`.