{ "info": { "author": "Jason Jiang", "author_email": "jiangjun0130@aliyun.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries" ], "description": "based Django 2.x to logging model instances update\n\n## Installation\n\n`pip install simple-model-logging`\n\nAdd `simple-model-logging` to your `INSTALLED_APPS`.\n\n## Usage\n\n#### Low-level use\n\nfrom datetime import datetime\n\nfrom django.db import models\n\nfrom .simple_model_logging import SystemUserLogMixin\n\n\nclass AbstractModel(models.Model):\n \"\"\"\n base model\n \"\"\"\n STATUS_TYPE = (\n ('1', 'NORMAL'),\n ('2', 'DELETE'),\n ('3', 'DISABLE')\n )\n create_time = models.DateTimeField('create_time', default=datetime.now)\n update_time = models.DateTimeField('update_time', default=datetime.now)\n update_time = models.DateTimeField('update_time', default=None, null=True, blank=True)\n data_status = models.CharField('data_status', max_length=1, choices=STATUS_TYPE, default='1')\n\n def delete(self, using=None, keep_parents=False):\n # logging delete\n SystemUserLogMixin.log_delete(self)\n\n # override delete method\n self.delete_time = datetime.now()\n self.data_status = '2'\n self.save()\n\n def save(self, *args, **kw):\n log = SystemUserLogMixin()\n is_insert = False\n if self.id:\n # update\n print('update model')\n # logging update\n log.log_update(model=self)\n else:\n # insert\n # set insert signal\n is_insert = True\n print('insert model')\n\n super(AbstractModel, self).save(*args, **kw)\n if is_insert:\n # logging insert\n # this code can get the record id\n log.log_create(model=self)\n\n def create(self, *args, **kw):\n log = SystemUserLogMixin()\n super(AbstractModel, self).create(*args, **kw)\n log.log_create(model=self)\n\n class Meta:\n abstract = True\n\n\nclass Person(AbstractModel):\n \"\"\"\n bussiness model extends from AbstractModel.\n when invoke the model's save(),create(),delete() method will do logging\n \"\"\"\n pass", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jiangjun0130/simple-model-logging", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "simple-model-logging", "package_url": "https://pypi.org/project/simple-model-logging/", "platform": "", "project_url": "https://pypi.org/project/simple-model-logging/", "project_urls": { "Homepage": "https://github.com/jiangjun0130/simple-model-logging" }, "release_url": "https://pypi.org/project/simple-model-logging/1.1.3/", "requires_dist": null, "requires_python": "", "summary": "Based Django 2.0.4 to logging update", "version": "1.1.3" }, "last_serial": 3957152, "releases": { "1.1.0": [ { "comment_text": "", "digests": { "md5": "c26037cd5c72fc9cf086945485e42a3d", "sha256": "aefe87f1292c02ee42373b6bc928bfa63ea7429a9cd2c182a04ca1ca9ec347f5" }, "downloads": -1, "filename": "simple-model-logging-1.1.0.tar.gz", "has_sig": false, "md5_digest": "c26037cd5c72fc9cf086945485e42a3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4926, "upload_time": "2018-06-11T09:48:01", "url": "https://files.pythonhosted.org/packages/0d/f9/e1d202141af4134d82ec26f8e03eb1ad17b29a8c6f4bf10bfcbd7b33bc0f/simple-model-logging-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "05219ed004fb2c9b5d49df26291eab64", "sha256": "583f99af1dd4f63e58059c9416b3ab06eecadae1229c09d835c24ca85d2137f0" }, "downloads": -1, "filename": "simple-model-logging-1.1.1.tar.gz", "has_sig": false, "md5_digest": "05219ed004fb2c9b5d49df26291eab64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4934, "upload_time": "2018-06-12T02:34:49", "url": "https://files.pythonhosted.org/packages/ce/73/af300e31d128ca57e22b9733d3c8145a175643eb6d9af1bc4db4e9ee9f0b/simple-model-logging-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "3a89c6a8a602dbca409ef1c2745eae2c", "sha256": "b98063640af75acef3c6c0619c2f7b14e9324758d1395d1141fd1ba82c17d5bd" }, "downloads": -1, "filename": "simple-model-logging-1.1.2.tar.gz", "has_sig": false, "md5_digest": "3a89c6a8a602dbca409ef1c2745eae2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4978, "upload_time": "2018-06-12T03:08:15", "url": "https://files.pythonhosted.org/packages/13/2d/436746f70e49674fffb4165d02b4179bc984d4eeed82784720e2dbe6a4bb/simple-model-logging-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "448aeb912bb86f5edb12d53f1121f4b9", "sha256": "15cf2e3bfde62f9d7dce24c95dfebb2212576e6d831e4c04a688cbd2f9ce50ac" }, "downloads": -1, "filename": "simple-model-logging-1.1.3.tar.gz", "has_sig": false, "md5_digest": "448aeb912bb86f5edb12d53f1121f4b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4983, "upload_time": "2018-06-13T10:04:55", "url": "https://files.pythonhosted.org/packages/fc/29/fca845a537c397fd94bbba6c05d5f28508a03d4101dcd97789d5f5309d77/simple-model-logging-1.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "448aeb912bb86f5edb12d53f1121f4b9", "sha256": "15cf2e3bfde62f9d7dce24c95dfebb2212576e6d831e4c04a688cbd2f9ce50ac" }, "downloads": -1, "filename": "simple-model-logging-1.1.3.tar.gz", "has_sig": false, "md5_digest": "448aeb912bb86f5edb12d53f1121f4b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4983, "upload_time": "2018-06-13T10:04:55", "url": "https://files.pythonhosted.org/packages/fc/29/fca845a537c397fd94bbba6c05d5f28508a03d4101dcd97789d5f5309d77/simple-model-logging-1.1.3.tar.gz" } ] }