django-celery-results
Celery result backends for Django.
What it is and what it does
django-celery-results is a Django integration layer that lets you store Celery asynchronous task results directly in your Django database or cache, rather than in a separate result backend like Redis or RabbitMQ. It defines a single TaskResult model that you can query like any other Django ORM model, making it easy to track task status, retrieve results, and build dashboards or monitoring tools around your async workload.
The package is designed for Django projects that already use Celery for task scheduling and execution. By storing results in your existing database, you avoid the operational overhead of maintaining a separate result storage system, though this approach trades some performance for simplicity. It supports modern Django versions (3.2 through 5.2) and Python 3.8 and later.
Use it for:
- Store Celery task results in your Django database so you can query them via the ORM alongside other application data.
- Build a task history or audit trail by querying the TaskResult model to see which tasks ran, when, and what they returned.
- Simplify deployment by eliminating the need for a dedicated result backend service when you already have a database.
- Monitor long-running async operations by checking task status directly from your Django admin or custom dashboards.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Stores Celery task results in a Django database or cache backend, making task completion status and results queryable through the Django ORM.
Yes, if you use Celery with Django and prefer to avoid a separate result backend service. The package is actively maintained, has no known vulnerabilities, and integrates cleanly with the Django ORM. Install friction is low. Be aware that database-backed result storage may have different performance characteristics than Redis or similar backends, and MySQL users should verify the task ID length configuration for their version.
Install
django-celery-results on PyPI
pip
pip install django-celery-resultsuv
uv add django-celery-resultspoetry
poetry add django-celery-resultsInstalling django-celery-results
Before you install
Low friction install with only two runtime dependencies (celery and Django). Actively maintained as of 2026-08-10 with recent releases; no known vulnerabilities.
License in practice
BSD license is permissive; you can use, modify, and distribute this package with minimal restrictions in both open-source and commercial projects.
Quickstart
pip install django-celery-results
# In Django settings.py:
INSTALLED_APPS = [
'django_celery_results',
# ...
]
CELERY_RESULT_BACKEND = 'django-db'
# Then run migrations:
# python manage.py migrate django_celery_results
# Query results:
from django_celery_results.models import TaskResult
result = TaskResult.objects.get(task_id='your-task-id')
print(result.result)
Requires Django and Celery to be installed and configured; you must run Django migrations for the django_celery_results app before storing results.
Verify before relying
- Whether MySQL-specific configuration (DJANGO_CELERY_RESULTS_TASK_ID_MAX_LENGTH) is still required for current MySQL versions.
- Performance characteristics when storing large volumes of task results or querying historical results.
Package facts
| License | BSD (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — celery, Django |
| Maintenance | actively maintained — 491 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 4,010,053/month — #2,400 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_celery_results-2.6.0-py3-none-any.whl
Keywords: celery, django, database, result, backend
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
django-storagesdjango-storages provides pluggable storage…
permissive · top 5,000 on PyPI
sqlalchemy-celery-beatProvides a SQLAlchemy-backed scheduler for…
permissive · top 15,000 on PyPI
celeryCelery is a distributed task queue that lets…
permissive · top 1,000 on PyPI
django-celery-beatStores Celery periodic task schedules in a…
permissive · top 5,000 on PyPI
celery-typesProvides type stubs for Celery and related…
permissive · top 5,000 on PyPI
django-tasks-dbA Django Tasks backend that stores and executes…
permissive · top 15,000 on PyPI
celery-progressProvides drop-in progress bars for Django views…
permissive · top 15,000 on PyPI
celery-batchesCelery Batches provides a Task class that…
permissive · top 15,000 on PyPI
tenant-schemas-celeryIntegrates Celery task queuing with…
permissive · top 15,000 on PyPI
django-zealDetects N+1 query problems in Django…
unclear · top 15,000 on PyPI