{ "info": { "author": "Patrick Altman", "author_email": "paltman@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "Django Logical Delete\n=====================\n\nThis is a small and simple app that I threw together to get some reuse out of \nsomething I do in nearly every project and every model I create. It's too easy\nfor good data to get deleted and it be unrecoverable. It's also too easy to\nfix this by overriding the model's delete() method and just flagging records\nas deleted and then leveraging Django's Managers to override default behavior\nso that logically deleted items are not returned in querysets.\n\nThere are two exceptions however, that I have found useful to this rule.\n\n#. In the admin I like to see everything with an indicator of whether or not \n it has been deleted, with the ability to filter down to just active records,\n (or deleted for that matter).\n#. I still think it is a valid request when an item is fetched for by it's\n primary key value, that the object should return, even if it is marked as\n deleted.\n\n\nInstalling django-logicaldelete\n-------------------------------\n\n::\n\n pip install django-logicaldelete\n\n\nUsing django-logicaldelete\n--------------------------\n\nUsing the app is pretty simple:\n\n#. add `logicaldelete` to your INSTALLED_APPS\n#. Inherit from `logicaldelete.models.Model` for all models that you wish to \n share in this functionality.\n#. Create and/or Register admins for each of these models using `logicaldelete.admin.ModelAdmin`\n\n\nAdditional\n----------\n\nLogical deletes are handled by date stamping a `date_removed` column. In addition, a `date_created` and `date_modified` columns will be populated as a convenience.\n\n\nBackwards Incompatible Changes\n------------------------------\n\n1.1\n***\n\n* Changed `everything` to `all_with_deleted` on LogicalDeleteManager\n* LogicalDeleteManager moved from `logicaldelete.models` to `logicaldelete.managers`\n* Removed `deleted` and `everything` querysets from `logicaldelete.models.Model`", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/paltman/django-logicaldelete", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-logicaldelete", "package_url": "https://pypi.org/project/django-logicaldelete/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-logicaldelete/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/paltman/django-logicaldelete" }, "release_url": "https://pypi.org/project/django-logicaldelete/1.2/", "requires_dist": null, "requires_python": null, "summary": "a base model that provides built in logical delete functionality", "version": "1.2" }, "last_serial": 1153931, "releases": { "1.1b1.dev1": [ { "comment_text": "", "digests": { "md5": "4675fc135e06bbf57c4d45499a48cd76", "sha256": "3c22767929d6b69822f9bddb305c361fc989722ab58cd35e62ce82f0852734e7" }, "downloads": -1, "filename": "django-logicaldelete-1.1b1.dev1.tar.gz", "has_sig": false, "md5_digest": "4675fc135e06bbf57c4d45499a48cd76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4360, "upload_time": "2011-02-19T20:55:37", "url": "https://files.pythonhosted.org/packages/2a/00/cbe84333dc47c933495d2c057f85c6a6fc2bb8f54a97ce04b6c4b2ea92e5/django-logicaldelete-1.1b1.dev1.tar.gz" } ], "1.1b1.dev2": [ { "comment_text": "", "digests": { "md5": "6210f0349ace07a776d2278cf90a02ff", "sha256": "b5b4c81ba39e12e7a5eb86b70e3dd42cf161c69985734774cf3f349c4fc9eb2e" }, "downloads": -1, "filename": "django-logicaldelete-1.1b1.dev2.tar.gz", "has_sig": false, "md5_digest": "6210f0349ace07a776d2278cf90a02ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4332, "upload_time": "2011-02-20T02:15:05", "url": "https://files.pythonhosted.org/packages/d3/47/20cd79dccee4edaf27f70d69433864b4c4d55fe23eaae417ea5b1114b285/django-logicaldelete-1.1b1.dev2.tar.gz" } ], "1.1b1.dev3": [ { "comment_text": "", "digests": { "md5": "89e0fe8b5baf77bcb51009b33351fea8", "sha256": "0638bfe31d508866812c857e2b382b6e04c4d96056f455e175564db34db7557b" }, "downloads": -1, "filename": "django-logicaldelete-1.1b1.dev3.tar.gz", "has_sig": false, "md5_digest": "89e0fe8b5baf77bcb51009b33351fea8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4499, "upload_time": "2011-02-22T07:01:48", "url": "https://files.pythonhosted.org/packages/9b/0b/5a7924509109a00634aff8b9679b88cab6844b366441c0f104fdcd2f887a/django-logicaldelete-1.1b1.dev3.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "b50b5bba9e0f17cb3dc9ea39d562aba8", "sha256": "284407b94bbefecc52610d382e65cd570ce7bb4c59fb8ebc9b45ec1b0babf07b" }, "downloads": -1, "filename": "django-logicaldelete-1.2.tar.gz", "has_sig": false, "md5_digest": "b50b5bba9e0f17cb3dc9ea39d562aba8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4141, "upload_time": "2014-07-10T20:06:40", "url": "https://files.pythonhosted.org/packages/8f/c8/7c85eb364db34fd0a7d0e0af5eb796fb0abc345e24e2fb7661575e03d224/django-logicaldelete-1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b50b5bba9e0f17cb3dc9ea39d562aba8", "sha256": "284407b94bbefecc52610d382e65cd570ce7bb4c59fb8ebc9b45ec1b0babf07b" }, "downloads": -1, "filename": "django-logicaldelete-1.2.tar.gz", "has_sig": false, "md5_digest": "b50b5bba9e0f17cb3dc9ea39d562aba8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4141, "upload_time": "2014-07-10T20:06:40", "url": "https://files.pythonhosted.org/packages/8f/c8/7c85eb364db34fd0a7d0e0af5eb796fb0abc345e24e2fb7661575e03d224/django-logicaldelete-1.2.tar.gz" } ] }