django-model-utils
Django model mixins and utilities
Decision gist · record as of 2026-08-14
Yes. django-model-utils is a well-maintained, widely-used library that solves genuine repetitive problems in Django development. It has low install friction, no security vulnerabilities, a permissive license, and active support for current Django and Python versions. Install it if your project uses Django and you need any of its utilities—field tracking, soft deletes, timestamped models, or status management.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Django 3.2 or later and Python 3.8 or later.
- Low friction install with a single dependency on Django.
- Actively maintained with recent releases and commits, supporting Django 3.2 through 5.1 and Python 3.8 through 3.12.
License · maintenance · safety
BSD (permissive) — BSD permissive license allows use in commercial and open-source projects with minimal restrictions; attribution required.
last release 2024-09-04 (709 days) · last repo commit 2026-08-10 · 2,762 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 4,882,604 downloads/mo, #2,208 on PyPI
Alternatives
Verify before relying
pip install django-model-utils
from django_model_utils.models import TimeStampedModel
from django_model_utils.fields import StatusField
class Article(TimeStampedModel):
status = StatusField()- Specific performance characteristics of FieldTracker on large datasets or complex model hierarchies.
- Compatibility edge cases with Django async ORM features in Django 4.1+.
What it is and what it does
django-model-utils is a collection of reusable model mixins and field types that extend Django's built-in model capabilities. It provides utilities like TimeStampedModel (automatically adds created/modified timestamps), SoftDeletableModel (logical deletion without removing data), FieldTracker (monitors field changes), and StatusField (manages state transitions). It also includes managers for model inheritance queries and utilities for working with choices and UUID fields.
The library is designed to reduce boilerplate in common Django patterns. Rather than reimplementing field tracking or soft-delete logic in every project, developers import the relevant mixin or field type into their models. It has minimal dependencies—only Django itself—and integrates directly into Django's ORM, so queries and migrations work as expected. The package is actively maintained, supports current Django and Python versions, and carries no known security vulnerabilities.
Use it for
- Add automatic created/modified timestamps to models without writing custom save() logic.
- Implement soft-delete functionality where records are marked deleted but retained in database.
- Track which fields on a model instance have changed since it was loaded or last saved.
- Define status or state fields with predefined choices and automatic change-date tracking.
- Query model inheritance hierarchies efficiently without N+1 queries.
- Generate URL-safe tokens for password resets or one-time links.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
django-model-utils is a well-maintained, widely-used library that solves genuine repetitive problems in Django development. It has low install friction, no security vulnerabilities, a permissive license, and active support for current Django and Python versions. Install it if your project uses Django and you need any of its utilities—field tracking, soft deletes, timestamped models, or status management.
Install
django-model-utils on PyPI
Before you install
Low friction install with a single dependency on Django. Actively maintained with recent releases and commits, supporting Django 3.2 through 5.1 and Python 3.8 through 3.12.
Requires Django 3.2 or later and Python 3.8 or later.
License in practice
BSD permissive license allows use in commercial and open-source projects with minimal restrictions; attribution required.
Quickstart
pip install django-model-utils
from django_model_utils.models import TimeStampedModel
from django_model_utils.fields import StatusField
class Article(TimeStampedModel):
status = StatusField()
Verify before relying
- Specific performance characteristics of FieldTracker on large datasets or complex model hierarchies.
- Compatibility edge cases with Django async ORM features in Django 4.1+.
Package facts
| License | BSD permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packageDjango |
| Maintenance | Actively maintained 709 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 4,882,604 / month, #2,208 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 3.2Framework :: Django :: 4.0Framework :: Django :: 4.1Framework :: Django :: 4.2Framework :: Django :: 5.0Framework :: Django :: 5.1Intended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: django_model_utils-5.0.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “django model mixins”
- django-model-utilsProvides reusable model mixins and field utilities for Django…
- sqlalchemy-mixinsProvides Active Record-style mixins for SQLAlchemy ORM, enabling…
- django-bracesProvides reusable mixin classes for Django class-based views,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Application Frameworks packages
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Textual is a Python framework for building cross-platform user interfaces that run in the terminal or web browser using a modern, component-based API.
Install it if you're developing CLI tools, dashboards, or interactive terminal applications.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Build and connect to Model Context Protocol servers that expose tools, resources, and prompts to LLM applications over stdio, HTTP, or SSE transports.
Install it if you need to build or connect to servers.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
See also django-dirtyfields · django-upgrade · django-contrib-comments · django-soft-delete · swapper · sqlalchemy-mixins · django-pickling · django-safedelete · django-braces · django-sql-utils