{ "info": { "author": "Alisue", "author_email": "lambdalisue@hashnote.net", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP" ], "description": "********\ndjango-author\n********\n.. image:: https://travis-ci.org/lambdalisue/django-author.svg\n :target: https://travis-ci.org/lambdalisue/django-author\n.. image:: https://coveralls.io/repos/github/lambdalisue/django-author/badge.svg?branch=master\n :target: https://coveralls.io/github/lambdalisue/django-author?branch=master\n \nUpdate author and updated_by fields of models automatically\n\nThis library is used for updating ``author`` and ``updated_by`` fields automatically\nwith ``request.user`` when the model has created/changed.\n\nAlso if you are too lazy to write ``author = models.ForeignKey(User, _('author'), related_name ...)`` to every model,\njust add ``@with_author`` decorator to the top of class makes you happy.\n\n\nInstall\n==============\nThis library is on PyPI so you can install it with::\n\n pip install django-author\n\nor from github::\n \n pip install git+https://github.com/lambdalisue/django-author.git\n\n\nUsage\n==========\n\n1. Add ``'author'`` to your ``INSTALLED_APPS`` on settings.py\n\n2. Add ``'author.middlewares.AuthorDefaultBackendMiddleware'`` to your ``MIDDLEWARE_CLASSES``\n if you use default author backend\n\n3. Add ``author`` and ``updated_by`` field to models which you want to have ``author`` and ``updated_by`` fields manually\n or use ``@with_author`` decorator like below::\n\n from django.db import models\n from author.decorators import with_author\n\n @with_author\n class Entry(models.Model):\n title = models.CharField('title', max_length=50)\n body = models.TextField('body')\n\n4. Done. Now you have automatically updated ``author`` and ``updated_by`` fields\n\n If you are in truble, see ``author_test`` directory for usage sample.\n\n\nSettings\n================\n\nAUTHOR_BACKEND\n Class or string path of backend. the backend is used to determine user when object is created/updated.\n\nAUTHOR_CREATED_BY_FIELD_NAME\n A name of field. the setting also interfer the name of field created by ``@with_author`` decorator. default is 'author'\n\nAUTHOR_UPDATED_BY_FIELD_NAME\n A name of field. the setting also interfer the name of field created by ``@with_author`` decorator. default is 'updated_by'\n\nAUTHOR_DO_NOT_UPDATE_WHILE_USER_IS_NONE\n Do not update ``author`` or ``updated_by`` field when detected user is None. default is True\n\nAUTHOR_MODELS\n Check signals for only these models. default is None\n\nAUTHOR_IGNORE_MODELS\n Do not check signals for these models. default is ['auth.user', 'auth.group', 'auth.permission', 'contenttype.contenttype']\n\n\nBackend\n==============\nThe default backend use ``thread_locals`` storategy to get current request in signal call.\n\nIf you want to change the strategy or whatever, create your own backend.\n\nA backend is a class which have ``get_user`` method to determine current user.\n\nAuthorDefaultBackend\n Default backend. This backend return None when no request found or AnonymousUser create/update object.\n\nAuthorSystemUserBackend\n System user backend. This backend return system user when no request found or AnonymousUser create/update object.\n\n system user is determined with ``get_system_user`` method and default is ``User.objects.get(pk=1)``\n", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/lambdalisue/django-author/tarball/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lambdalisue/django-author", "keywords": "django author object universal", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-author", "package_url": "https://pypi.org/project/django-author/", "platform": "", "project_url": "https://pypi.org/project/django-author/", "project_urls": { "Download": "https://github.com/lambdalisue/django-author/tarball/master", "Homepage": "https://github.com/lambdalisue/django-author" }, "release_url": "https://pypi.org/project/django-author/1.0.2/", "requires_dist": null, "requires_python": "", "summary": "Add special User ForeignKey fields which update automatically", "version": "1.0.2" }, "last_serial": 3525475, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d6fa4469c2a29da357611d767cb739a6", "sha256": "a8e96743dc63c3ea028e4d8b02e009616fce918289820cf89b656b5a097d0c1c" }, "downloads": -1, "filename": "django-author-0.1.tar.gz", "has_sig": false, "md5_digest": "d6fa4469c2a29da357611d767cb739a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15040, "upload_time": "2011-12-14T19:59:54", "url": "https://files.pythonhosted.org/packages/33/19/7be90e3a49c5a13ddeaaedbd69bf92bbc63dab399e5210d8ea568a915ad8/django-author-0.1.tar.gz" } ], "0.1rc2": [ { "comment_text": "", "digests": { "md5": "4e51fd8fb89a67f49b147561860e013d", "sha256": "495f4b63ac813e2dd19234efe8a261300c18d027a9934c24422b5958fef6cb9b" }, "downloads": -1, "filename": "django-author-0.1rc2.tar.gz", "has_sig": false, "md5_digest": "4e51fd8fb89a67f49b147561860e013d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15387, "upload_time": "2012-01-13T14:09:38", "url": "https://files.pythonhosted.org/packages/c1/94/be31f3f88728bdc6e99b77fa943a1f756813e0c764547a98ba38a7708350/django-author-0.1rc2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0ea70573bca9779c7f67b1bdff5d7f94", "sha256": "9ebb90cb9120156986c7baa621e0c6b1d808e029ca46eff28bf94f180f442939" }, "downloads": -1, "filename": "django-author-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0ea70573bca9779c7f67b1bdff5d7f94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16026, "upload_time": "2014-03-27T09:21:11", "url": "https://files.pythonhosted.org/packages/6d/10/aaf2e98bae03dd0e6def1c79811a2ebf1770f417be7a9507a5bf5418ee1c/django-author-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "3a48a6d74432fa740a426c2b617d8fa9", "sha256": "e23326c7f9950b70cd08286217e469c43b27849a7faf379d7e316a8d179bb7b6" }, "downloads": -1, "filename": "django-author-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3a48a6d74432fa740a426c2b617d8fa9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12033, "upload_time": "2015-11-09T17:08:01", "url": "https://files.pythonhosted.org/packages/96/fb/5d084e2a99e56c7f99341576eacf63e90071436ef28ff2312c116c6a5f6f/django-author-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "cbdcc4a63d70a5024831b398f74e794b", "sha256": "cab4db60885b340e81a78a5c120fe92d78adec8db79c88a547a45d47f84adda3" }, "downloads": -1, "filename": "django-author-0.4.0.tar.gz", "has_sig": false, "md5_digest": "cbdcc4a63d70a5024831b398f74e794b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17732, "upload_time": "2015-12-14T10:02:56", "url": "https://files.pythonhosted.org/packages/6e/82/8f9f858b583c375873575f8c0566da1cc844d2a5e659d67aca8ae924a35f/django-author-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "3ae644b84fd4690d583b4ac40a6c190a", "sha256": "8b93f1b090339cc65a789e6c17a09e3a351acfe4715e16b89b3e880826f35ddc" }, "downloads": -1, "filename": "django-author-0.4.1.tar.gz", "has_sig": false, "md5_digest": "3ae644b84fd4690d583b4ac40a6c190a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17781, "upload_time": "2016-06-26T10:12:46", "url": "https://files.pythonhosted.org/packages/0b/a7/1b8b468aa8f7a6781c6c393dbc010593be3fe75882d45b37ddcb1644c584/django-author-0.4.1.tar.gz" } ], "0.4.2": [], "0.4.4": [ { "comment_text": "", "digests": { "md5": "2a13482df3d267dbfd7474a8681c9771", "sha256": "c03ed27dd604c2d5c3b07425f75bb456d8dcccde1a63c5f4fcc7353ea4e54a3c" }, "downloads": -1, "filename": "django-author-0.4.4.tar.gz", "has_sig": false, "md5_digest": "2a13482df3d267dbfd7474a8681c9771", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18098, "upload_time": "2016-06-26T11:57:12", "url": "https://files.pythonhosted.org/packages/77/5d/d8e28136026f7791b2b2372164b32bad783cd569750bff9b0a66c32db338/django-author-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "032a81fa74946f332c73c3c677d89bd1", "sha256": "8a847aa03d2542bbaddedc33df7288bc62abca97b4dfe366b778ee1f4dfaebe8" }, "downloads": -1, "filename": "django-author-0.4.5.tar.gz", "has_sig": false, "md5_digest": "032a81fa74946f332c73c3c677d89bd1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18064, "upload_time": "2017-01-03T08:22:59", "url": "https://files.pythonhosted.org/packages/47/2a/81998d666223003b42a8a06c7740e4dbcf2915127b393dbd708170dc31d6/django-author-0.4.5.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "05647b671b436d7e66696ed07a88daa9", "sha256": "a6a49828e9b8548cd588f0f1084b066909811061dc98099086861504942cb458" }, "downloads": -1, "filename": "django-author-1.0.0.tar.gz", "has_sig": false, "md5_digest": "05647b671b436d7e66696ed07a88daa9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17823, "upload_time": "2017-10-21T13:56:52", "url": "https://files.pythonhosted.org/packages/bc/70/5768f7c723190af9b0cd32a504393af3ed210c30fdd623d23f10cfaa1bd1/django-author-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "e09858d07033c94adcf6578877ce4f55", "sha256": "03bb76569fe4df2318fdc3c530138c80c33a7224f9a661c226943c10d18287c8" }, "downloads": -1, "filename": "django-author-1.0.1.tar.gz", "has_sig": false, "md5_digest": "e09858d07033c94adcf6578877ce4f55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17790, "upload_time": "2017-10-22T04:56:32", "url": "https://files.pythonhosted.org/packages/bf/1e/52248e34ac3aaf7944b5154fb4f4ea35d4dfbf12c430d7ed1e29e8399a49/django-author-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "d5b29213f52d35f4fe3a6bc1a0a2d5fa", "sha256": "0238b6280f66a8ba6d1c730ab4acc52bc2bf37686940fd4db42e7af458c96635" }, "downloads": -1, "filename": "django-author-1.0.2.tar.gz", "has_sig": false, "md5_digest": "d5b29213f52d35f4fe3a6bc1a0a2d5fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17814, "upload_time": "2018-01-26T22:46:21", "url": "https://files.pythonhosted.org/packages/48/8c/ead95f32d25b738cc236513b15a65eab035013775cd0bccfd20c96160542/django-author-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d5b29213f52d35f4fe3a6bc1a0a2d5fa", "sha256": "0238b6280f66a8ba6d1c730ab4acc52bc2bf37686940fd4db42e7af458c96635" }, "downloads": -1, "filename": "django-author-1.0.2.tar.gz", "has_sig": false, "md5_digest": "d5b29213f52d35f4fe3a6bc1a0a2d5fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17814, "upload_time": "2018-01-26T22:46:21", "url": "https://files.pythonhosted.org/packages/48/8c/ead95f32d25b738cc236513b15a65eab035013775cd0bccfd20c96160542/django-author-1.0.2.tar.gz" } ] }