{ "info": { "author": "ramusus", "author_email": "ramusus@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Django ManyToMany History\n========================\n\n[![PyPI version](https://badge.fury.io/py/django-m2m-history.png)](http://badge.fury.io/py/django-m2m-history) [![Build Status](https://travis-ci.org/ramusus/django-m2m-history.png?branch=master)](https://travis-ci.org/ramusus/django-m2m-history) [![Coverage Status](https://coveralls.io/repos/ramusus/django-m2m-history/badge.png?branch=master)](https://coveralls.io/r/ramusus/django-m2m-history)\n\nDjango ManyToMany relation field with history of changes. Like usual Django's ManyToManyField, it's generate intermediary join table\nto represent the many-to-many relationship, but with two additional columns: 'time_from' and 'time_to'. Using updated interface of field it's\npossible to retreive history of all versions of this field's value.\n\nCompatibility\n-------------\n\n * python v2.7, v3.4\n * django >=1.5, <=1.8. **Does not compatible with Django 1.9**\n * postgres\n\nInstallation\n------------\n\n pip install django-m2m-history\n\nAdd into `settings.py` lines:\n\n INSTALLED_APPS = (\n ...\n 'm2m_history',\n )\n\nUsage example\n-------------\n\nMake 2 models with many-to-many relationship:\n\n class Publication(models.Model):\n title = models.CharField(max_length=30)\n\n def __str__(self):\n return self.title\n\n class Article(models.Model):\n headline = models.CharField(max_length=100)\n publications = ManyToManyHistoryField(Publication)\n\n def __str__(self):\n return self.headline\n\nCreate objects and relations betweeen them:\n\n >>> p1 = Publication.objects.create(title='Pub1')\n >>> p2 = Publication.objects.create(title='Pub2')\n >>> p3 = Publication.objects.create(title='Pub3')\n\n >>> article = Article.objects.create(headline='Article1')\n >>> state_time1 = datetime.now()\n\n >>> article.publications = [p1, p2]\n >>> state_time2 = article.publications.last_update_time()\n >>> article.publications.all()\n [, ]\n >>> article.publications.count()\n 2\n >>> article.publications.through.objects.count()\n 2\n\n >>> article.publications = [p3]\n >>> state_time3 = article.publications.last_update_time()\n >>> article.publications.all()\n []\n >>> article.publications.count()\n 1\n >>> article.publications.through.objects.count()\n 3\n\n >>> article.publications.add(p2, p1)\n >>> state_time4 = article.publications.last_update_time()\n >>> article.publications.all()\n [, , ]\n >>> article.publications.count()\n 3\n >>> article.publications.through.objects.count()\n 5\n\n >>> article.publications.remove(p2, p1)\n >>> state_time5 = article.publications.last_update_time()\n >>> article.publications.all()\n []\n >>> article.publications.count()\n 1\n >>> article.publications.through.objects.count()\n 5\n\n >>> article.publications = [p1, p2]\n >>> state_time6 = article.publications.last_update_time()\n >>> article.publications.all()\n [, ]\n >>> article.publications.count()\n 2\n >>> article.publications.through.objects.count()\n 7\n\n >>> article.publications.clear()\n >>> state_time7 = article.publications.last_update_time()\n >>> article.publications.all()\n []\n >>> article.publications.count()\n 0\n >>> article.publications.through.objects.count()\n 7\n\nGet objects of history states by timestamps:\n\n >>> article.publications.were_at(state_time1)\n []\n\n >>> article.publications.were_at(state_time2)\n [, ]\n\n >>> article.publications.were_at(state_time3)\n []\n\n >>> article.publications.were_at(state_time4)\n [, , ]\n\n >>> article.publications.were_at(state_time5)\n []\n\n >>> article.publications.were_at(state_time6)\n [, ]\n\n >>> article.publications.were_at(state_time7)\n []\n\nGet added and removed objects of history states by timestamps:\n\n >>> article.publications.added_at(state_time3)\n []\n\n >>> article.publications.removed_at(state_time3)\n [, ]\n\n >>> article.publications.added_at(state_time4)\n [, ]\n\n >>> article.publications.removed_at(state_time5)\n [, ]\n\n >>> article.publications.added_at(state_time6)\n [, ]\n\n >>> article.publications.removed_at(state_time6)\n []", "description_content_type": null, "docs_url": null, "download_url": "http://pypi.python.org/pypi/django-m2m-history", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ramusus/django-m2m-history", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-m2m-history", "package_url": "https://pypi.org/project/django-m2m-history/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-m2m-history/", "project_urls": { "Download": "http://pypi.python.org/pypi/django-m2m-history", "Homepage": "https://github.com/ramusus/django-m2m-history" }, "release_url": "https://pypi.org/project/django-m2m-history/0.3.6/", "requires_dist": null, "requires_python": null, "summary": "Django ManyToMany relation field with history of changes", "version": "0.3.6" }, "last_serial": 2180940, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "80571dd03ef6943a41df2377adc2864f", "sha256": "b1cf22563c6d478d7c115893e5a08de47fb117d3cbd44f9dac42af0150f5ce70" }, "downloads": -1, "filename": "django-m2m-history-0.0.1.tar.gz", "has_sig": false, "md5_digest": "80571dd03ef6943a41df2377adc2864f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15367, "upload_time": "2014-04-02T06:16:31", "url": "https://files.pythonhosted.org/packages/b0/a9/cf41a7aa94f60c0e89b1edce644df6942a5eb6f97b089c83875e9d1b6bb9/django-m2m-history-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "e665ff390504423591bfd6c174e1b933", "sha256": "6de8be53e080af23d16ada878ea68d0742a3ee8910621269df4a81b6bcbafa0c" }, "downloads": -1, "filename": "django-m2m-history-0.0.10.tar.gz", "has_sig": false, "md5_digest": "e665ff390504423591bfd6c174e1b933", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18554, "upload_time": "2014-04-24T01:05:41", "url": "https://files.pythonhosted.org/packages/77/cb/e8179ff971077d4d5f5029e9c968a134a91fa917d1020bf49fbde38494b1/django-m2m-history-0.0.10.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "db5269a9627b6138723c1e0c434dfa21", "sha256": "8de4eb1f599eea6c1677cd30558cb9e61b2b9b0f4a02b778ace78968d5fdfbff" }, "downloads": -1, "filename": "django-m2m-history-0.0.2.tar.gz", "has_sig": false, "md5_digest": "db5269a9627b6138723c1e0c434dfa21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15353, "upload_time": "2014-04-02T06:21:38", "url": "https://files.pythonhosted.org/packages/ba/6b/923963eff84e8e799d86ca17a8bdf798bcc07efaa34ba6b5aaabe1b148b7/django-m2m-history-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "cdd85bfc2c5fb551b1f01210425e472a", "sha256": "a080b38ae239883910cd18c9d4b61e4eaddf7b2fab6793d21fd8f37be3548e57" }, "downloads": -1, "filename": "django-m2m-history-0.0.3.tar.gz", "has_sig": false, "md5_digest": "cdd85bfc2c5fb551b1f01210425e472a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15427, "upload_time": "2014-04-02T07:04:17", "url": "https://files.pythonhosted.org/packages/9a/f4/a4f780bc4df3038da892141269fafb3b95931c516d2bd1c7048b96ea2cc5/django-m2m-history-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "3ea3d4971c629e3de177f20bc088ad9a", "sha256": "1357cedf2847ec630613dd41bc80304bfd61ff1fff7d5446904538b3cf51a3d1" }, "downloads": -1, "filename": "django-m2m-history-0.0.4.tar.gz", "has_sig": false, "md5_digest": "3ea3d4971c629e3de177f20bc088ad9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16218, "upload_time": "2014-04-03T16:13:40", "url": "https://files.pythonhosted.org/packages/97/78/85629eb5b16f2e7debfb335caa49bb6fa885920b9977b95e8651f658fc73/django-m2m-history-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "e37685050f315ed53ccef57d70c5eee4", "sha256": "8fe1260defe871976fe60988ed56aff866e13d20654d30d1a01394b301ecb939" }, "downloads": -1, "filename": "django-m2m-history-0.0.5.tar.gz", "has_sig": false, "md5_digest": "e37685050f315ed53ccef57d70c5eee4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16234, "upload_time": "2014-04-04T17:29:37", "url": "https://files.pythonhosted.org/packages/18/5e/a9b9136aa499cc3d6d020277213e6bc30f289a804637af3dd9eace0f672c/django-m2m-history-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "a03c120e1f10332ae38e401e6ef83f5e", "sha256": "0e8168025f149f0b48527671236064af25d3ac0a94f6e9efd4c210874d86cedc" }, "downloads": -1, "filename": "django-m2m-history-0.0.6.tar.gz", "has_sig": false, "md5_digest": "a03c120e1f10332ae38e401e6ef83f5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16262, "upload_time": "2014-04-04T19:19:46", "url": "https://files.pythonhosted.org/packages/6e/54/d6964906b2404798306bc17404f72a64b5ffb067039e2e450feb5bd0b22c/django-m2m-history-0.0.6.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "e3c928fcf7fd95d89d0c4f480019dae0", "sha256": "63a64970474b06f5fdf0f9865d6f0502004bb63f048df7c908ece47f8dd53fca" }, "downloads": -1, "filename": "django-m2m-history-0.0.8.tar.gz", "has_sig": false, "md5_digest": "e3c928fcf7fd95d89d0c4f480019dae0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18348, "upload_time": "2014-04-24T00:41:55", "url": "https://files.pythonhosted.org/packages/7d/5c/c0f859d02b4068ac4b86a0fd71e32c4bc478fea08ae578285bd55dd60864/django-m2m-history-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "2ea3dda1e87ed6d3c9e213dd78dd34c8", "sha256": "fb95ba66ddf517236ac0fefb04288250340dc42854d10457de2e53f892965bac" }, "downloads": -1, "filename": "django-m2m-history-0.0.9.tar.gz", "has_sig": false, "md5_digest": "2ea3dda1e87ed6d3c9e213dd78dd34c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18476, "upload_time": "2014-04-24T00:55:39", "url": "https://files.pythonhosted.org/packages/f3/7e/e048239330528c2916708dd0f16844c159313d6c89e8b401941bb30589c2/django-m2m-history-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "64f072115e7da4ec41e564328981ac78", "sha256": "82bfc1c60a7314fc9fb2400c9226c344e1954d48df7d5a0717f0c6f92efa6007" }, "downloads": -1, "filename": "django-m2m-history-0.1.0.tar.gz", "has_sig": false, "md5_digest": "64f072115e7da4ec41e564328981ac78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18573, "upload_time": "2014-04-24T10:51:15", "url": "https://files.pythonhosted.org/packages/4c/81/18320f600024b748a22024a80158ae8420f80884d409fff2841b3c03889c/django-m2m-history-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "baed2a8e9b79c582700a0e6ffa565af4", "sha256": "ec2534c81bb7379f037948125ca952e33e21b35416c749c2cc7b8b4e7ffafd6f" }, "downloads": -1, "filename": "django-m2m-history-0.1.1.tar.gz", "has_sig": false, "md5_digest": "baed2a8e9b79c582700a0e6ffa565af4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18956, "upload_time": "2014-04-24T11:20:56", "url": "https://files.pythonhosted.org/packages/0d/7c/c2fcca450e487976fa008b02ea93969ce129443c86e6899a197253fc9394/django-m2m-history-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f9851b61e5cb2b11bd98b985df30548d", "sha256": "389e4ac50b0b5a92ea5a9093496365abbb92903a9e0c9b75002b468d07efe700" }, "downloads": -1, "filename": "django-m2m-history-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f9851b61e5cb2b11bd98b985df30548d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19702, "upload_time": "2014-12-03T19:05:22", "url": "https://files.pythonhosted.org/packages/93/da/0d84552897076a9b8e71b3593ac10afa87c454f834b318d1c6e2155dbe62/django-m2m-history-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "a6f247a7b6b89b90941003494bbda4e6", "sha256": "46bf85923e8c54e6fb0ee3e53e9e6b72169865e8a8cbf9396d8ec5ef22c338ac" }, "downloads": -1, "filename": "django-m2m-history-0.1.3.tar.gz", "has_sig": false, "md5_digest": "a6f247a7b6b89b90941003494bbda4e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19740, "upload_time": "2014-12-24T08:02:20", "url": "https://files.pythonhosted.org/packages/ab/d2/ea5f11487a2dfa7d63913451b74e85d1efbdfe79c76cb811470f8cb2c7b5/django-m2m-history-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "71b41e12dff58226154d6ecd4b09fd54", "sha256": "45486445641697035dad4329d624a5600aefad0fb8777a5e4ff787351d7734d0" }, "downloads": -1, "filename": "django-m2m-history-0.1.4.tar.gz", "has_sig": false, "md5_digest": "71b41e12dff58226154d6ecd4b09fd54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20039, "upload_time": "2014-12-31T04:46:44", "url": "https://files.pythonhosted.org/packages/e9/63/c4496fdc80c87c30122d8b868ec4536e3eb5109e34effa0aebd0e2a6bd1a/django-m2m-history-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "96763b24c7184f9df662801954b4280d", "sha256": "132f1c5fb693264794de72280a644567f8dd2bccf63e540fc3659c473550b90c" }, "downloads": -1, "filename": "django-m2m-history-0.1.5.tar.gz", "has_sig": false, "md5_digest": "96763b24c7184f9df662801954b4280d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20224, "upload_time": "2014-12-31T05:19:22", "url": "https://files.pythonhosted.org/packages/87/ed/b76171a55ff62941e125f7ec3b865bc568360c6abd275ef46db24a0a1529/django-m2m-history-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "74b955bee4929c1e6c75e72b0f04287e", "sha256": "fac79f3cebfe34a20267da9d9680717f35fb241e9851dd98e4572b08314d28a6" }, "downloads": -1, "filename": "django-m2m-history-0.1.6.tar.gz", "has_sig": false, "md5_digest": "74b955bee4929c1e6c75e72b0f04287e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21039, "upload_time": "2014-12-31T06:00:01", "url": "https://files.pythonhosted.org/packages/7a/c6/68713c29c9ade0630f1cfb3c0f29d957d92d6b03598434a5dacefd30c725/django-m2m-history-0.1.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "6a4f38e66da2345f9cc023a26f70204b", "sha256": "0b9d45368a5f1c45f5a2b9df4323b7ec4da296dc171950522a120c8a003a885a" }, "downloads": -1, "filename": "django-m2m-history-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6a4f38e66da2345f9cc023a26f70204b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21643, "upload_time": "2015-02-07T08:57:34", "url": "https://files.pythonhosted.org/packages/d3/07/153727050e3705ea2df001fdef314b8256fbbaa413aa281635dcaf3fb1c2/django-m2m-history-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "f262681043ce6ec888245f8f93206125", "sha256": "f10e7f41577ef412e6658e3c0c657b8ed97eb5281f8ddd3b4526f0a9fde8b3bb" }, "downloads": -1, "filename": "django-m2m-history-0.2.1.tar.gz", "has_sig": false, "md5_digest": "f262681043ce6ec888245f8f93206125", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20908, "upload_time": "2015-02-08T06:18:24", "url": "https://files.pythonhosted.org/packages/72/39/0ec195894532ea41f136dc5b4bf80ab8a626092454ade99df9e159de85b9/django-m2m-history-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "194b2738ee974427829dfa2c7b866613", "sha256": "f987dd34c6316c9a063925cc2146732662657d714137c3d8e12383d923712a41" }, "downloads": -1, "filename": "django-m2m-history-0.2.2.tar.gz", "has_sig": false, "md5_digest": "194b2738ee974427829dfa2c7b866613", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21092, "upload_time": "2015-02-08T09:36:41", "url": "https://files.pythonhosted.org/packages/f3/9b/2eb15a2178d948654155b743392545642c55dc2c3dbf4ecc5b92572859f3/django-m2m-history-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "ebc028fabd5a71ec0e78cec5df2b5a47", "sha256": "373c78de4c0674713e72b0861412d3863dfd684fa3e2d1bb455626caf892efa1" }, "downloads": -1, "filename": "django-m2m-history-0.2.3.tar.gz", "has_sig": false, "md5_digest": "ebc028fabd5a71ec0e78cec5df2b5a47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21970, "upload_time": "2015-03-13T05:49:01", "url": "https://files.pythonhosted.org/packages/37/47/9eee3400c77edd9ae39779557e6902d1b65c3de2165e5147921b618771e8/django-m2m-history-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "dfe75e1f9a5451dbbe4728a5e9ab79d1", "sha256": "36f87c6453ecdd14ee56bdf6e6798bf2a5a4fa08d285e8b79f132a327c3e2a1b" }, "downloads": -1, "filename": "django-m2m-history-0.2.4.tar.gz", "has_sig": false, "md5_digest": "dfe75e1f9a5451dbbe4728a5e9ab79d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21958, "upload_time": "2015-03-13T07:24:23", "url": "https://files.pythonhosted.org/packages/c8/f3/f99035c0e0294df7719bd7ec3361180e05fb5203a79cdb6869ff1c6dba04/django-m2m-history-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "d2a96872990fc1c35fbbfc12a2d2bfa0", "sha256": "12c83f5a1f1011293f8cd3d16adc51cb486b1a8ed8e3780f209f24875e4ef463" }, "downloads": -1, "filename": "django-m2m-history-0.2.5.tar.gz", "has_sig": false, "md5_digest": "d2a96872990fc1c35fbbfc12a2d2bfa0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22991, "upload_time": "2015-03-13T14:43:47", "url": "https://files.pythonhosted.org/packages/0b/1a/8912efed13dad5b0e6b6eb85bc02fcaecc1f09e6fd8883669dedebd1aabd/django-m2m-history-0.2.5.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "fd35d0fe6581ce3f059a3f5c830e9b7e", "sha256": "77d25f874a05ebbe4d405ec3cba9d84ac2f3170639e7513d25c44ce7638d6010" }, "downloads": -1, "filename": "django-m2m-history-0.3.0.tar.gz", "has_sig": false, "md5_digest": "fd35d0fe6581ce3f059a3f5c830e9b7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24334, "upload_time": "2015-03-26T07:47:10", "url": "https://files.pythonhosted.org/packages/69/b8/6287bf6a2d95b93a0a6ca7210fe791769fc09b586b3fe5baa90807105542/django-m2m-history-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "bab90732b9eba389767cc6bb3b80ab53", "sha256": "31660b06fec92a52decb89b59dd8277052e88009c8cc883ebc68c4728027410a" }, "downloads": -1, "filename": "django-m2m-history-0.3.1.tar.gz", "has_sig": false, "md5_digest": "bab90732b9eba389767cc6bb3b80ab53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24665, "upload_time": "2015-03-26T08:21:38", "url": "https://files.pythonhosted.org/packages/b6/a9/490b8fe7c7946bb6ad1f09c1729cd6ebe5d5c7ad7bf451fb50b93c3f90e2/django-m2m-history-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "e54338f313c9d36f9ea108e40a0946e9", "sha256": "5c20edf920e8cf7ad562c3286132a828fac3d70406b170a3b4723acccbef80fc" }, "downloads": -1, "filename": "django-m2m-history-0.3.2.tar.gz", "has_sig": false, "md5_digest": "e54338f313c9d36f9ea108e40a0946e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24768, "upload_time": "2015-05-09T09:01:22", "url": "https://files.pythonhosted.org/packages/11/3c/948bf7180d138c3462fbb051fd560de94a015b2269f7df9e1af3fdd4891d/django-m2m-history-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "938674583dbb3786c37b8aac420b9906", "sha256": "1e9665bce435080ef1021e96eb92b289355fa36783893c4ebb9f24bf04ca3160" }, "downloads": -1, "filename": "django-m2m-history-0.3.3.tar.gz", "has_sig": false, "md5_digest": "938674583dbb3786c37b8aac420b9906", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24720, "upload_time": "2016-02-25T18:18:53", "url": "https://files.pythonhosted.org/packages/02/85/b8ae2e7c796d5c24d6ca3e8c75e6340fca42483b205a67dbac924a5fbd52/django-m2m-history-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "053b7cbc5cce3951f6be921502e37e47", "sha256": "5a17ab9149fc23d5228d0c2fc4ae42777dbc22a51b239699ed5458f8bf10b50b" }, "downloads": -1, "filename": "django-m2m-history-0.3.4.tar.gz", "has_sig": false, "md5_digest": "053b7cbc5cce3951f6be921502e37e47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24834, "upload_time": "2016-02-25T19:05:22", "url": "https://files.pythonhosted.org/packages/03/f6/482a202e65c1949ae2bef97ee1715329d369cf6035b8c4460184ce932554/django-m2m-history-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "1fee8f0f21775a0704f593835ea0c1a5", "sha256": "71eaddf503717c48406d03b3fed93eb88246f9cc296d8e1b5f048818641c2617" }, "downloads": -1, "filename": "django-m2m-history-0.3.5.tar.gz", "has_sig": false, "md5_digest": "1fee8f0f21775a0704f593835ea0c1a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24785, "upload_time": "2016-03-04T08:25:18", "url": "https://files.pythonhosted.org/packages/64/f6/6e589d97b85fbee2dcaf4c06da332ebeb9dc022d68e4d086b16d56155362/django-m2m-history-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "21c422ba5e7dbdbff81af0a832345379", "sha256": "a4d04f244e284f191d0d1b75acf58afa9c6754cac94e5a8f94678edc8e1a91d9" }, "downloads": -1, "filename": "django-m2m-history-0.3.6.tar.gz", "has_sig": false, "md5_digest": "21c422ba5e7dbdbff81af0a832345379", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24851, "upload_time": "2016-06-22T10:14:23", "url": "https://files.pythonhosted.org/packages/27/46/9b3232433648020dff3d5def31446c095b86e20c7239ed2d4bcf29df689b/django-m2m-history-0.3.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "21c422ba5e7dbdbff81af0a832345379", "sha256": "a4d04f244e284f191d0d1b75acf58afa9c6754cac94e5a8f94678edc8e1a91d9" }, "downloads": -1, "filename": "django-m2m-history-0.3.6.tar.gz", "has_sig": false, "md5_digest": "21c422ba5e7dbdbff81af0a832345379", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24851, "upload_time": "2016-06-22T10:14:23", "url": "https://files.pythonhosted.org/packages/27/46/9b3232433648020dff3d5def31446c095b86e20c7239ed2d4bcf29df689b/django-m2m-history-0.3.6.tar.gz" } ] }