Ejemplo n.º 1
0
def log(user, flag, message, obj=None, dt=None):
    from django.contrib.admin.models import ADDITION, CHANGE, DELETION
    flags = dict(create=ADDITION, update=CHANGE, delete=DELETION)
    flag = flags.get(flag, flag)
    if not isinstance(message, str):
        message = json.dumps(message)
    logentry = LogEntry(
        user_id=user.pk,
        action_flag=flag,
        change_message=message,
    )
    if obj:
        logentry.content_type_id = ContentType.objects.get_for_model(obj).pk
        logentry.object_id = obj.pk
        logentry.object_repr = str(obj)[:200]
    if dt:
        logentry.action_time = dt
    logentry.save()
    return logentry