1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- # coding=utf-8
- import json
- import datetime
- from django.db import models
- from django.utils import timezone
- from django.conf import settings
- from utils.format import strftime, strfdate
- class SysLogManager(models.Manager):
- def addnew(self, user, type, description, data=None):
- def default(o):
- if isinstance(o, datetime.datetime):
- return strftime(o)
- elif isinstance(o, datetime.date):
- return strfdate(o)
- row = self.model(user=user, type=type, description=description)
- if data:
- row.data = json.dumps(data, default=default)
- row.save()
- return row
- class SysLog(models.Model):
- INSERT = 1
- UPDATE = 2
- DELETE = 3
- TYPE_CHOICES = (
- (INSERT, u'添加'),
- (UPDATE, u'修改'),
- (DELETE, u'删除'),
- )
- TYPE_JSON = [{'id': item[0], 'value': item[1]} for item in TYPE_CHOICES]
- user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, null=True, blank=True)
- type = models.PositiveSmallIntegerField(choices=TYPE_CHOICES, verbose_name=u"类别")
- description = models.CharField(max_length=1000, verbose_name=u"内容")
- data = models.TextField(verbose_name=u"数据", null=True, blank=True)
- create_time = models.DateTimeField(verbose_name=u"添加时间", default=timezone.now, editable=False)
- objects = SysLogManager()
- class Meta:
- db_table = "sys_log"
- ordering = ['-id']
- index_together = (
- 'create_time',
- 'type',
- )
- verbose_name = u"系统日志"
- default_permissions = ()
|