{ "info": { "author": "Sassoo", "author_email": "noreply@devnull.seriously", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Internet :: WWW/HTTP" ], "description": "drf_changemgmt\n======================================\n\n|build-status-image| |pypi-version|\n\nOverview\n--------\n\nDjango Rest Framework dirty tracking\n\nRequirements\n------------\n\n- Python (2.7, 3.3, 3.4)\n- Django (1.6, 1.7, 1.8)\n- Django REST Framework (2.4, 3.0, 3.1)\n\nInstallation\n------------\n\nInstall using ``pip``\\ \u2026\n\n.. code:: bash\n\n $ pip install drf_changemgmt\n\nExample\n-------\n\n.. code:: python\n\n from .models import Actor\n from drf_changemgmt import ChangeMgmtSerializerMixin\n from rest_framework.serializers import ModelSerializer\n\n class ActorSerializer(ChangeMgmtSerializerMixin, ModelSerializer):\n \"\"\" Actor model serializer \"\"\"\n\n class Meta(object):\n \"\"\" DRF ModelSerializer meta object \"\"\"\n\n model = Actor\n\n ...\n ...\n\n def pre_save(..):\n changed = model.get_changed_fields()\n if 'superuser_role' in changed:\n raise PermissionDenied(\"you can't do that!\")\n\nTesting\n-------\n\nInstall testing requirements.\n\n.. code:: bash\n\n $ pip install -r requirements.txt\n\nRun with runtests.\n\n.. code:: bash\n\n $ ./runtests.py\n\nYou can also use the excellent `tox`_ testing tool to run the tests\nagainst all supported versions of Python and Django. Install tox\nglobally, and then simply run:\n\n.. code:: bash\n\n $ tox\n\nDocumentation\n-------------\n\nTo build the documentation, you\u2019ll need to install ``mkdocs``.\n\n.. code:: bash\n\n $ pip install mkdocs\n\nTo preview the documentation:\n\n.. code:: bash\n\n $ mkdocs serve\n Running at: http://127.0.0.1:8000/\n\nTo build the documentation:\n\n.. code:: bash\n\n $ mkdocs build\n\n.. _tox: http://tox.readthedocs.org/en/latest/\n\n.. |build-status-image| image:: https://secure.travis-ci.org/sassoo/drf_changemgmt.svg?branch=master\n :target: http://travis-ci.org/sassoo/drf_changemgmt?branch=master\n.. |pypi-version| image:: https://img.shields.io/pypi/v/drf_changemgmt.svg\n :target: https://pypi.python.org/pypi/drf_changemgmt\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/sassoo/drf_changemgmt", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "drf_changemgmt", "package_url": "https://pypi.org/project/drf_changemgmt/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/drf_changemgmt/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/sassoo/drf_changemgmt" }, "release_url": "https://pypi.org/project/drf_changemgmt/0.1.0/", "requires_dist": null, "requires_python": null, "summary": "Django Rest Framework dirty tracking", "version": "0.1.0" }, "last_serial": 2007839, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d83665e3269adaf1546902afd4a0d053", "sha256": "0aab9d7d9219c14943c4474276989be92076c09cb49db611eeb43f9d8589d064" }, "downloads": -1, "filename": "drf_changemgmt-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d83665e3269adaf1546902afd4a0d053", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4402, "upload_time": "2016-03-15T13:19:26", "url": "https://files.pythonhosted.org/packages/36/1f/78edd5265365238ed52456267d5eca517a02f2d3cdad1c6bc25981587b50/drf_changemgmt-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ab22268fe6326869285d820d2965969", "sha256": "86d4a0171e171cfed0efdd77ba5d8d5c5a8508f0cd35e2493f532def4568f681" }, "downloads": -1, "filename": "drf_changemgmt-0.1.0.tar.gz", "has_sig": false, "md5_digest": "5ab22268fe6326869285d820d2965969", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4800, "upload_time": "2016-03-15T13:19:13", "url": "https://files.pythonhosted.org/packages/8a/5a/eff073956660c04096afe5036d81e5d5e5c2a8959780a7e7fb9f3f92ef53/drf_changemgmt-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d83665e3269adaf1546902afd4a0d053", "sha256": "0aab9d7d9219c14943c4474276989be92076c09cb49db611eeb43f9d8589d064" }, "downloads": -1, "filename": "drf_changemgmt-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d83665e3269adaf1546902afd4a0d053", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4402, "upload_time": "2016-03-15T13:19:26", "url": "https://files.pythonhosted.org/packages/36/1f/78edd5265365238ed52456267d5eca517a02f2d3cdad1c6bc25981587b50/drf_changemgmt-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ab22268fe6326869285d820d2965969", "sha256": "86d4a0171e171cfed0efdd77ba5d8d5c5a8508f0cd35e2493f532def4568f681" }, "downloads": -1, "filename": "drf_changemgmt-0.1.0.tar.gz", "has_sig": false, "md5_digest": "5ab22268fe6326869285d820d2965969", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4800, "upload_time": "2016-03-15T13:19:13", "url": "https://files.pythonhosted.org/packages/8a/5a/eff073956660c04096afe5036d81e5d5e5c2a8959780a7e7fb9f3f92ef53/drf_changemgmt-0.1.0.tar.gz" } ] }