{"id":752,"library":"django","title":"Django","description":"Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. It is currently at version 6.0.3 and follows a time-based release schedule with feature releases approximately every eight months. Long-term support (LTS) releases occur every two years and receive security and data loss fixes for three years.","status":"active","version":"6.0.3","language":"python","source_language":"en","source_url":"https://github.com/django/django","tags":["web-framework","python","orm","full-stack"],"install":[{"cmd":"pip install Django","lang":"bash","label":"Latest stable version"},{"cmd":"pip install Django==6.0.3","lang":"bash","label":"Specific version"}],"dependencies":[],"imports":[{"note":"Used for defining database models.","symbol":"models","correct":"from django.db import models"},{"note":"Provides Django's administration interface.","symbol":"admin","correct":"from django.contrib import admin"},{"note":"Used for URL routing in URLconfs.","symbol":"path","correct":"from django.urls import path"},{"note":"Commonly used for importing views within an app's `urls.py`.","symbol":"views","correct":"from . import views"},{"note":"Access to project settings.","symbol":"settings","correct":"from django.conf import settings"},{"note":"Commonly used helper functions.","symbol":"shortcuts","correct":"from django.shortcuts import render, redirect, get_object_or_404"}],"quickstart":{"code":"import os\n\ndef run_django_quickstart():\n    project_name = 'myproject'\n    app_name = 'myapp'\n\n    print(f\"Creating Django project '{project_name}'...\")\n    os.system(f'django-admin startproject {project_name} .')\n    os.chdir(project_name)\n\n    print(f\"Creating Django app '{app_name}'...\")\n    os.system(f'python manage.py startapp {app_name}')\n\n    # Modify settings.py to include the new app\n    settings_path = os.path.join(project_name, 'settings.py')\n    with open(settings_path, 'r') as f:\n        content = f.readlines()\n\n    insert_index = -1\n    for i, line in enumerate(content):\n        if 'INSTALLED_APPS' in line:\n            insert_index = i + 1\n            break\n\n    if insert_index != -1:\n        content.insert(insert_index, f\"    '{app_name}',\\n\")\n    else:\n        print(\"Warning: Could not find INSTALLED_APPS in settings.py. Please add manually.\")\n\n    with open(settings_path, 'w') as f:\n        f.writelines(content)\n\n    print(\"Applying migrations...\")\n    os.system('python manage.py makemigrations')\n    os.system('python manage.py migrate')\n\n    print(\"Creating superuser (username: admin, email: admin@example.com, password: password). Please change in production!\")\n    create_superuser_script = (\n        \"from django.contrib.auth import get_user_model; \"\n        \"User = get_user_model(); \"\n        \"User.objects.filter(username='admin').exists() or User.objects.create_superuser('admin', 'admin@example.com', 'password')\"\n    )\n    os.system(f'python manage.py shell -c \"{create_superuser_script}\"')\n\n    print(\"Quickstart complete. To run the development server, navigate to the project root and execute:\")\n    print(\"python manage.py runserver\")\n    print(\"Admin interface will be at http://127.0.0.1:8000/admin/\")\n\n# To run this quickstart, you would execute: run_django_quickstart()\n","lang":"python","description":"This quickstart guides you through setting up a new Django project and application, running migrations, and creating an admin superuser. It modifies `settings.py` to include your new app and provides instructions to start the development server."},"warnings":[{"fix":"Upgrade your Python installation to 3.12, 3.13, or 3.14. Verify all dependencies are compatible with the new Python version before upgrading Django.","message":"Django 6.0 dropped support for Python versions older than 3.12. Projects on Python 3.11 or earlier must upgrade their Python environment before upgrading to Django 6.0.","severity":"breaking","affected_versions":">=6.0"},{"fix":"Refactor your `urlpatterns` to use `path()` for simple URL patterns and `re_path()` with regular expressions where needed. E.g., change `url(r'^api/users/(?P<id>\\d+)/$', views.user_detail)` to `path('api/users/<int:id>/', views.user_detail)` or `re_path(r'^api/users/(?P<id>\\d+)/$', views.user_detail)`.","message":"In Django 6.0, URL patterns in `urlpatterns` now explicitly require `path()` or `re_path()`. Implicit string syntax for URL patterns is no longer supported.","severity":"breaking","affected_versions":">=6.0"},{"fix":"Consult the Django 6.0 release notes and deprecation timeline to identify and replace removed APIs. For translation, use `gettext()` instead of `ugettext()`.","message":"Several previously deprecated APIs were removed in Django 6.0, including `django.utils.translation.ugettext()` (use `gettext()` instead) and specific form renderers like `DjangoDivFormRenderer`.","severity":"breaking","affected_versions":">=6.0"},{"fix":"Always run `python manage.py makemigrations` to create migration files for your model changes, and then `python manage.py migrate` to apply those changes to your database.","message":"Failing to run `makemigrations` and `migrate` after model changes or adding new apps is a common mistake that leads to database schema inconsistencies.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Use absolute imports starting from the app name (e.g., `from myapp.models import MyModel`) or explicit relative imports (e.g., `from .models import MyModel`) where appropriate, ensuring the app is correctly registered in `INSTALLED_APPS`.","message":"Incorrect relative imports within Django apps can cause 'ModuleNotFoundError' issues. Django's import system relies on the project structure.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Ensure your system's SQLite library is updated to version 3.31.0 or newer, especially in production environments.","message":"Django 6.0 requires a minimum of SQLite 3.31.0. Older SQLite versions are no longer supported.","severity":"breaking","affected_versions":">=6.0"}],"env_vars":null,"last_verified":"2026-05-12T18:36:03.982Z","next_check":"2026-06-27T00:00:00.000Z","problems":[{"fix":"Activate your project's virtual environment (if used) and install Django: `pip install django` or `python -m pip install django`.","cause":"The Django package is not installed in the active Python environment, or the incorrect Python interpreter/virtual environment is being used for the project.","error":"ModuleNotFoundError: No module named 'django'"},{"fix":"Ensure the DJANGO_SETTINGS_MODULE environment variable is set to your project's settings file (e.g., `export DJANGO_SETTINGS_MODULE=myproject.settings`) or run Django commands using `python manage.py`.","cause":"Django's settings module is not correctly specified, often when running a script outside the standard manage.py context or when the DJANGO_SETTINGS_MODULE environment variable is not set or points to a wrong location.","error":"django.core.exceptions.ImproperlyConfigured: Requested setting DEBUG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings."},{"fix":"Ensure that the data being saved adheres to unique constraints by checking for existing records before saving, updating the existing record if intended, or by implementing `try-except IntegrityError` blocks for robust error handling.","cause":"An attempt was made to save a new object or update an existing one with a value for a unique field that already exists in the database, violating a UNIQUE constraint.","error":"django.db.utils.IntegrityError: UNIQUE constraint failed: app_model.field_name"},{"fix":"Use a `try-except YourModel.DoesNotExist` block to gracefully handle cases where the object is not found, or in views, use the `get_object_or_404()` shortcut to automatically raise an Http404 exception.","cause":"A `get()` query on a Django model's manager did not find any object matching the given lookup parameters in the database.","error":"YourModel.DoesNotExist: YourModel matching query does not exist."},{"fix":"Verify that your app is included in `INSTALLED_APPS` in `settings.py`, ensure a `migrations` directory with an `__init__.py` file exists within your app, and double-check your model definitions for any unsaved changes or typos.","cause":"Django's `makemigrations` command did not find any differences between your models and the current migration files, often because the app is not listed in `INSTALLED_APPS`, the `migrations` directory is missing, or there's a typo in the model definition.","error":"No changes detected"}],"ecosystem":"pypi","meta_description":null,"install_score":100,"install_tag":"verified","quickstart_score":80,"quickstart_tag":"verified","pypi_latest":"6.0.5","cli_name":"django-admin","install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.46,"mem_mb":15.3,"disk_size":"66.2M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.44,"mem_mb":15.3,"disk_size":"66.2M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":3.4,"import_time_s":0.38,"mem_mb":15.3,"disk_size":"67M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":1.5,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.37,"mem_mb":15.3,"disk_size":"67M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.63,"mem_mb":17,"disk_size":"70.6M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.63,"mem_mb":17,"disk_size":"70.6M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":3.4,"import_time_s":0.52,"mem_mb":17,"disk_size":"71M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":1.5,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.5,"mem_mb":17,"disk_size":"71M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.73,"mem_mb":16.1,"disk_size":"62.2M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.74,"mem_mb":16.1,"disk_size":"62.1M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.8,"mem_mb":16.1,"disk_size":"62.2M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.81,"mem_mb":16.1,"disk_size":"62.1M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":3.5,"import_time_s":0.81,"mem_mb":16.1,"disk_size":"63M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":3.4,"import_time_s":0.73,"mem_mb":16.1,"disk_size":"63M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.73,"mem_mb":16.1,"disk_size":"63M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.78,"mem_mb":16.1,"disk_size":"63M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.74,"mem_mb":16.9,"disk_size":"62.0M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.78,"mem_mb":16.9,"disk_size":"62.0M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.78,"mem_mb":16.9,"disk_size":"61.9M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.79,"mem_mb":16.9,"disk_size":"61.9M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":3.4,"import_time_s":0.67,"mem_mb":16.9,"disk_size":"62M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":3.5,"import_time_s":0.7,"mem_mb":16.9,"disk_size":"62M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.75,"mem_mb":16.9,"disk_size":"62M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.71,"mem_mb":16.9,"disk_size":"62M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.41,"mem_mb":14.2,"disk_size":"64.2M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.41,"mem_mb":14.2,"disk_size":"64.2M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":3.9,"import_time_s":0.37,"mem_mb":14.2,"disk_size":"65M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":1.8,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.36,"mem_mb":14.2,"disk_size":"65M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]},"quickstart_checks":{"last_tested":"2026-04-24","tag":"verified","tag_description":"quickstart runs on critical runtimes, recently tested","results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":0},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":0},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":0},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":0},{"runtime":"python:3.9-slim","exit_code":0}]}}