Metadata-Version: 1.1
Name: simple-model-logging
Version: 1.1.1
Summary: Based Django 2.0.4  to logging update
Home-page: https://github.com/jiangjun0130/simple-model-logging
Author: Jason Jiang
Author-email: jiangjun0130@aliyun.com
License: BSD
Description: based Django 2.x to logging model instances update
        
        ## Installation
        
        `pip install simple-model-logging`
        
        Add `simple-model-logging` to your `INSTALLED_APPS`.
        
        ## Usage
        
        #### Low-level use
        
        from datetime import datetime
        
        from django.db import models
        
        from .simple_model_logging import SystemUserLogMixin
        
        
        class AbstractModel(models.Model):
            """
            base model
            """
            STATUS_TYPE = (
                ('1', 'NORMAL'),
                ('2', 'DELETE'),
                ('3', 'DISABLE')
            )
            create_time = models.DateTimeField('create_time', default=datetime.now)
            update_time = models.DateTimeField('update_time', default=datetime.now)
            update_time = models.DateTimeField('update_time', default=None, null=True, blank=True)
            data_status = models.CharField('data_status', max_length=1, choices=STATUS_TYPE, default='1')
        
            def delete(self, using=None, keep_parents=False):
                # logging delete
                SystemUserLogMixin.log_delete(self)
        
                # override delete method
                self.delete_time = datetime.now()
                self.data_status = '2'
                self.save()
        
                def save(self, *args, **kw):
                log = SystemUserLogMixin()
                is_insert = False
                if self.id:
                    # update
                    print('update model')
                    # logging update
                    log.log_update(model=self)
                else:
                    # insert
                    # set insert signal
                    is_insert = True
                    print('insert model')
        
                super(AbstractModel, self).save(*args, **kw)
                if is_insert:
                    # logging insert
                    # this code can get the record id
                    log.log_create(model=self)
        
            def create(self, *args, **kw):
                log = SystemUserLogMixin()
                super(AbstractModel, self).create(*args, **kw)
                log.log_create(model=self)
        
            class Meta:
                abstract = True
        
        
        class Person(AbstractModel):
            """
            bussiness model extends from AbstractModel.
            when invoke the model's save(),create(),delete() method will do logging
            """
            pass
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Libraries
