django-clone
Create a clone of a django model instance.
Decision gist · record as of 2026-08-14
Yes. The package solves a real Django problem (safe model duplication) with low install friction, active maintenance, no known vulnerabilities, and permissive licensing. It is well-tested and integrates cleanly with Django Admin. Install it if you need to duplicate model instances with control over which fields and relationships are copied.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Django 2.0 or later; Python 3.6+.
- Must add django-clone to INSTALLED_APPS before django.contrib.admin if using admin integration.
- Low install friction with a pure-Python wheel distribution.
License · maintenance · safety
MIT/Apache-2.0 (permissive) — Dual-licensed under MIT and Apache-2.0 (permissive). Either license permits commercial and private use with minimal restrictions.
last release 2025-06-10 (430 days) · last repo commit 2026-08-13 · 130 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 221,419 downloads/mo, #9,278 on PyPI
Alternatives
Verify before relying
pip install django-clone
from django_clone import CloneMixin
class MyModel(CloneMixin, models.Model):
name = models.CharField(max_length=100)
original = MyModel.objects.get(pk=1)
clone = original.clone()- Whether the package handles all Django ORM field types without manual intervention.
- Performance characteristics when cloning instances with large many-to-many or one-to-many relationship sets.
- Exact behavior of unique field suffix generation when multiple clones are created in rapid succession.
What it is and what it does
django-clone provides a mixin and model base class that lets you duplicate Django model instances with explicit control over which fields and relationships get copied. Instead of the naive `instance.pk = None; instance.save()` approach—which copies more state than intended—this package lets you specify exactly which fields, many-to-many relationships, and one-to-many relationships should be included in the clone. It automatically detects unique fields and appends a suffix to avoid constraint violations.
The package integrates with Django Admin, allowing cloning directly from list and change views. It supports multi-database operations, signals for pre- and post-clone hooks, and both explicit (include-only) and implicit (exclude-only) field selection. It has been actively maintained since its first release, supports Django 2.x through 4.x, and works with Python 3.6 and later.
Use it for
- Duplicate a product listing in an e-commerce app while automatically handling unique SKU fields.
- Clone a survey or form template with all its questions and options, excluding responses.
- Create a copy of a project or task in a project management tool without duplicating timestamps or status fields.
- Bulk-clone model instances across multiple databases in a multi-tenant application.
- Add a 'Duplicate' action to Django Admin for quick instance copying with controlled field selection.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package solves a real Django problem (safe model duplication) with low install friction, active maintenance, no known vulnerabilities, and permissive licensing. It is well-tested and integrates cleanly with Django Admin. Install it if you need to duplicate model instances with control over which fields and relationships are copied.
Install
django-clone on PyPI
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with recent commits and no known vulnerabilities. Depends only on django, conditional, and six.
Requires Django 2.0 or later; Python 3.6+. Must add django-clone to INSTALLED_APPS before django.contrib.admin if using admin integration.
License in practice
Dual-licensed under MIT and Apache-2.0 (permissive). Either license permits commercial and private use with minimal restrictions.
Quickstart
pip install django-clone
from django_clone import CloneMixin
class MyModel(CloneMixin, models.Model):
name = models.CharField(max_length=100)
original = MyModel.objects.get(pk=1)
clone = original.clone()
Verify before relying
- Whether the package handles all Django ORM field types without manual intervention.
- Performance characteristics when cloning instances with large many-to-many or one-to-many relationship sets.
- Exact behavior of unique field suffix generation when multiple clones are created in rapid succession.
Package facts
| License | MIT/Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesdjangoconditionalsix |
| Maintenance | Actively maintained 430 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 221,419 / month, #9,278 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/StableFramework :: Django :: 2.0Framework :: Django :: 2.1Framework :: Django :: 2.2Framework :: Django :: 3.0Framework :: Django :: 3.1Framework :: Django :: 3.2Framework :: Django :: 4.0Framework :: Django :: 4.1Framework :: Django :: 4.2Intended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Internet :: WWW/HTTP |
Evidence: django_clone-5.5.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 cloning”
- django-cloneDuplicates Django model instances with fine-grained control over…
- omnivoiceOmniVoice generates speech from text in over 600 languages using a…
- pocket-ttsPocket TTS generates speech from text on CPU using a lightweight…
Give your agent the search over MCP, or paste the wish link into any chat.
More WWW/HTTP packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
HTTPX is a fully featured HTTP client library for Python that provides both sync and async APIs, with support for HTTP/1.1 and HTTP/2, plus an integrated command-line client.
Install it if you are building new projects or modernizing existing ones that rely on HTTP.
A minimal low-level HTTP client library that sends HTTP requests with thread-safe and task-safe connection pooling, supporting HTTP/1.1, HTTP/2, proxies, and both sync and async interfaces.
aiohttp is an async HTTP client and server framework built on asyncio, supporting both WebSockets and middleware-based routing for building concurrent web applications.
Install it if you need async HTTP client or server capabilities in asyncio-based applications.
See also django-reversion · django-upgrade · django-cleanup · polyfactory · djangorestframework-queryfields · django-postgres-copy · django-dirtyfields · django-autoslug · chacha20poly1305-reuseable · django-jsonfield