{ "info": { "author": "Tonye Jack", "author_email": "jtonye@ymail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP" ], "description": "[![CircleCI](https://circleci.com/gh/jackton1/django-clone.svg?style=shield)](https://circleci.com/gh/jackton1/django-clone)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/django_clone.svg)](https://pypi.org/project/django-clone)\n[![PyPI - License](https://img.shields.io/pypi/l/django_clone.svg)](https://github.com/jackton1/django-clone/blob/master/LICENSE)\n[![PyPI - Django Version](https://img.shields.io/pypi/djversions/django_clone.svg)](https://docs.djangoproject.com/en/2.2/releases/)\n## django-clone \n\nCreating clones (i.e a copy) of a model instance on the fly. \n\n\n```python\nfrom django.db import models\nfrom django.utils.translation import gettext_lazy as _\nfrom model_clone import CloneMixin\n\nclass Tags(models.Model):\n name = models.CharField(max_length=255)\n\n def __str__(self):\n return _(self.name)\n\n\nclass TestModel(CloneMixin, models.Model):\n title = models.CharField(max_length=200)\n tags = models.ManyToManyField(Tags)\n\n _clonable_many_to_many_fields = ['tags']\n```\n\n\nCreating a clone\n\n```python\nIn [1]: test_obj = TestModel.objects.create(title='New')\n\nIn [2]: test_obj.tags.create(name='men')\n\nIn [3]: test_obj.tags.create(name='women')\n\nIn [4]: clone = test_obj.make_clone(attrs={'title': 'Updated title'})\n\nIn [5]: test_obj.title\nOut[5]: 'New'\n\nIn [6]: test_obj.tags.all()\nOut[6]: , ]>\n\nIn [7]: clone.title\nOut[7]: 'Updated title'\n\nIn [8]: clone.tags.all()\nOut[8]: , ]>\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jackton1/django-clone.git", "keywords": "django,django-clone,django clonable,django object clone,clone-django,model cloning,django instance duplication,django duplication", "license": "MIT/Apache-2.0", "maintainer": "Tonye Jack", "maintainer_email": "jtonye@ymail.com", "name": "django-clone", "package_url": "https://pypi.org/project/django-clone/", "platform": "", "project_url": "https://pypi.org/project/django-clone/", "project_urls": { "Homepage": "https://github.com/jackton1/django-clone.git" }, "release_url": "https://pypi.org/project/django-clone/0.0.2/", "requires_dist": [ "future (==0.17.1)", "readme-renderer[md] ; extra == 'deploy'", "changes (==0.7.0) ; extra == 'deploy'", "Django (>=1.11.18) ; extra == 'development'", "pip-tools (==3.1.0) ; extra == 'development'", "check-manifest (==0.37) ; extra == 'development'", "future (==0.17.1) ; extra == 'development'", "tox (==3.8.6) ; extra == 'development'", "pluggy (>=0.7) ; extra == 'development'", "mock (==2.0.0) ; extra == 'development'", "codacy-coverage (==1.3.11) ; extra == 'development'", "flake8 (==3.4.1) ; extra == 'development'", "yamllint (==1.10.0) ; extra == 'development'", "isort (==4.2.15) ; extra == 'development'", "flake8 (==3.4.1) ; extra == 'lint'", "yamllint (==1.10.0) ; extra == 'lint'", "isort (==4.2.15) ; extra == 'lint'", "tox (==3.8.6) ; extra == 'test'", "pluggy (>=0.7) ; extra == 'test'", "mock (==2.0.0) ; extra == 'test'", "codacy-coverage (==1.3.11) ; extra == 'test'", "Django (>=1.11.18) ; extra == 'tox'", "pip-tools (==3.1.0) ; extra == 'tox'", "check-manifest (==0.37) ; extra == 'tox'" ], "requires_python": ">=2.6", "summary": "Create a clone of a django model instance.", "version": "0.0.2" }, "last_serial": 5108730, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c616583986c701e1779d8c4347c84aa3", "sha256": "1596d18c63152f3e35d8d517395eaef7d2e3a7475a49c5bc87ba6db2b1f948a6" }, "downloads": -1, "filename": "django_clone-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c616583986c701e1779d8c4347c84aa3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.6", "size": 6003, "upload_time": "2019-04-06T22:21:31", "url": "https://files.pythonhosted.org/packages/0a/ca/5c977f84a836c8025b8ce30dd1147c69fd3523bc9902e73064c246edc9a5/django_clone-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f53e081e722b580dc333bb866710993c", "sha256": "3370decc255e9300fe08bfaaf94a105d93510f47b49c7e19ab8a320b01747056" }, "downloads": -1, "filename": "django-clone-0.0.1.tar.gz", "has_sig": false, "md5_digest": "f53e081e722b580dc333bb866710993c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.6", "size": 4693, "upload_time": "2019-04-06T22:21:33", "url": "https://files.pythonhosted.org/packages/83/4f/ad6ce0dc24bd66394fcaa5a14ff8315535aff3be4170224e9840dcdfd9e0/django-clone-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "16e30a33328bea0bd2653f55e3024868", "sha256": "4b551e6ae7f0b7decd40c25e16d15486b12dcf5e1b2da069b92d689fdd7d7d83" }, "downloads": -1, "filename": "django_clone-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "16e30a33328bea0bd2653f55e3024868", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.6", "size": 6595, "upload_time": "2019-04-07T01:38:12", "url": "https://files.pythonhosted.org/packages/b0/de/3438dc68f3fb1b922466d9324fd0f5ea8317d34d3570569aab5e5924c0a2/django_clone-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1823310c8faf234ad77dd42cea99d915", "sha256": "b3794ce0b1557fc86470ebc04963818cf249d7956862aa1bf3de3724e2611584" }, "downloads": -1, "filename": "django-clone-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1823310c8faf234ad77dd42cea99d915", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.6", "size": 5110, "upload_time": "2019-04-07T01:38:13", "url": "https://files.pythonhosted.org/packages/c8/86/a8647f5cfbec42b43533f87782ff1e2ff4832bc14d268d7d85772e14d0a6/django-clone-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "16e30a33328bea0bd2653f55e3024868", "sha256": "4b551e6ae7f0b7decd40c25e16d15486b12dcf5e1b2da069b92d689fdd7d7d83" }, "downloads": -1, "filename": "django_clone-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "16e30a33328bea0bd2653f55e3024868", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.6", "size": 6595, "upload_time": "2019-04-07T01:38:12", "url": "https://files.pythonhosted.org/packages/b0/de/3438dc68f3fb1b922466d9324fd0f5ea8317d34d3570569aab5e5924c0a2/django_clone-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1823310c8faf234ad77dd42cea99d915", "sha256": "b3794ce0b1557fc86470ebc04963818cf249d7956862aa1bf3de3724e2611584" }, "downloads": -1, "filename": "django-clone-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1823310c8faf234ad77dd42cea99d915", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.6", "size": 5110, "upload_time": "2019-04-07T01:38:13", "url": "https://files.pythonhosted.org/packages/c8/86/a8647f5cfbec42b43533f87782ff1e2ff4832bc14d268d7d85772e14d0a6/django-clone-0.0.2.tar.gz" } ] }